How to get Synchronize access to the StringCollection in C#

CsharpServer Side ProgrammingProgramming

To get synchronize access to the StringCollection, the code is as follows −

Example

 Live Demo

using System;
using System.Collections.Specialized;
public class Demo {
   public static void Main() {
      StringCollection stringCol = new StringCollection();
      String[] arr = new String[] { "100", "200", "300", "400", "500" };
      Console.WriteLine("Array elements...");
      foreach (string res in arr) {
         Console.WriteLine(res);
      }
      stringCol.AddRange(arr);
      Console.WriteLine("Total number of elements = "+stringCol.Count);
      stringCol.RemoveAt(3);
      Console.WriteLine("Total number of elements now = "+stringCol.Count);
      Console.WriteLine("Synchronize access...");
      lock(stringCol.SyncRoot) {
         foreach(object ob in stringCol) {
            Console.WriteLine(ob);
         }
      }
   }
}

Output

This will produce the following output −

Array elements...
100
200
300
400
500
Total number of elements = 5
Total number of elements now = 4
Synchronize access...
100
200
300
500

Example

Let us see another example −

 Live Demo

using System;
using System.Collections.Specialized;
public class Demo {
   public static void Main() {
      StringCollection strCol = new StringCollection();
      strCol.Add("Katie");
      strCol.Add("Philips");
      strCol.Add("Jacob");
      strCol.Add("Carl");
      strCol.Add("Gary");
      Console.WriteLine("Synchronize access...");
      lock(strCol.SyncRoot) {
         foreach(object ob in strCol) {
            Console.WriteLine(ob);
         }
      }
   }
}

Output

This will produce the following output −

Synchronize access...
Katie
Philips
Jacob
Carl
Gary
raja
Published on 11-Dec-2019 10:56:30
Advertisements