27 Mar

C# Collections Tutorial

This tutorial contains the information about C# Collection types.

  • Collections are similar to Arrays, providing a more flexible way to work with an object group.
  • You would have noticed in arrays that you must define in advance the number of elements in an array. When the array was declared, this had to be done. But you don’t need to define the size of the collection in advance in a collection. Elements can be added or even removed from the collection at any time.
Collection Description
ArrayList The ArrayList is similar to the C# array data type. The greatest difference is the dynamic nature of the collection of array list.
Stack The stack represents a simple last-in-first-out (LIFO) non-generic collection of objects.
Queue The Queue is a special collection which represents first-in, first-out concept of objects.
Hashtable A hash table is a collection that is used to store key-value pairs.
27 Mar

C# ArrayList Example

The ArrayList is similar to the C# array data type. The greatest difference is the dynamic nature of the collection of array list.

  • The add method is used to add an element to the ArrayList.

ArrayList Example:

ArrayList arrayList = new ArrayList();
arrayList.Add("Element 1");
arrayList.Add("Element 2");
arrayList.Add("Element 3");

Console.WriteLine("ArrayList Count: " + arrayList.Count);
Console.WriteLine("Contains Element2: " + arrayList.Contains("Element 2"));
arrayList.Remove("Element 2");
Console.WriteLine("ArrayList Count: " + arrayList.Count);

Program Output:
array list output

27 Mar

C# Stack Example

The stack represents a simple last-in-first-out (LIFO) non-generic collection of objects.

  • To add an element to the stack, the push method is used. The statement’s general syntax is shown below:
stack.Push("Obj");
  • To remove an element from the stack, the pop method is used. The pop operation returns the stack’s top element. The statement’s general syntax is given below:
object popObj = stack.Pop();

Stack Example:

            Stack stack = new Stack();
            stack.Push("Obj1");
            stack.Push("Obj2");
            stack.Push("Obj3");

            Console.WriteLine("Objects");
            Console.WriteLine("-------");
            foreach (Object obj in stack)
            {
                Console.WriteLine(obj);
            }
            object popObj = stack.Pop();
            Console.WriteLine("Last In/First Out(LIFO): " + popObj);

            Console.WriteLine("The number of elements in the stack: " + stack.Count);
            Console.WriteLine("Contains Obj1:  " + stack.Contains("Obj1"));

Program Output:

stack output

27 Mar

C# Queue Example

The Queue is a special collection which represents first-in, first-out concept of objects.

  • An element is added to the queue using the enqueue method. The statement’s general syntax is shown below:
queue.Enqueue("Obj");
  • To remove an element from the queue, the dequeue method is used. The dequeue operat on returns the queue’s last element. The statement’s general syntax is given below:
object obj = queue.Dequeue();

 

Queue Example:

Queue queue = new Queue();
queue.Enqueue("Obj1");
queue.Enqueue("Obj2");
queue.Enqueue("Obj3");

Console.WriteLine("The number of elements in the Queue: " + queue.Count);
Console.WriteLine("All objects");
foreach (Object obj in queue)
{
     Console.WriteLine(obj);
}

object obj1 = queue.Dequeue();
Console.WriteLine("First: " + obj1);

Console.WriteLine("Contains Obj1: " + queue.Contains("Obj1"));
Console.WriteLine("Contains Obj2: " + queue.Contains("Obj2"));

Program Output:
queue output

27 Mar

C# Hashtable Example

A hash table is a collection that is used to store key-value pairs. So the hash table stores 2 values while storing just one value like the stack, array list and queue. These 2 values are an element of the hash table.

  • To add an element to the queue, the Add method is used. The statement’s general syntax is given below.
ht.Add("key", "Value");
  • ContainsKey method is used to determine whether the Hashtable contains a specific key.
  • ContainsValue method is used to determine whether the Hashtable contains a specific value.

When you use foreach to enumerate hash table elements, the elements are retrieved as KeyValuePair objects.

            foreach (DictionaryEntry de in ht)
            {
                Console.WriteLine("Key = {0}, Value = {1}", de.Key, de.Value);
            }

Hastable Example:

            
            Hashtable ht = new Hashtable();
            
            // Add key-value pairs
            ht.Add("key1", "Value1");
            ht.Add("key2", "Value2");
            ht.Add("key3", "Value3");

            bool hasKey1 = ht.ContainsKey("key1");
            bool hasValue2 = ht.ContainsValue("Value1");

            // When you use foreach to enumerate hash table elements,
            // the elements are retrieved as KeyValuePair objects.
            foreach (DictionaryEntry de in ht)
            {
                Console.WriteLine("Key = {0}, Value = {1}", de.Key, de.Value);
            }

Program Output:
hashtable output