Collections in C# Programming


C# provides a variety of collection types to store and manage groups of related objects. Commonly used collections include List, Dictionary, Queue, and Stack. These collections are part of the System.Collections.Generic namespace and offer flexibility, performance, and ease of use.

1. List

A List is a dynamic collection that allows duplicate elements and provides methods for adding, removing, and searching items.

Example: Using a List

    using System;
    using System.Collections.Generic;
   class Program {
        static void Main() {
            // Create a List
            List numbers = new List();
           // Add elements
            numbers.Add(10);
            numbers.Add(20);
            numbers.Add(30);
           // Access elements
            Console.WriteLine("First element: " + numbers[0]);
           // Iterate through the List
            Console.WriteLine("All elements:");
            foreach (int num in numbers) {
                Console.WriteLine(num);
            }
           // Remove an element
            numbers.Remove(20);
            Console.WriteLine("After removal:");
            foreach (int num in numbers) {
                Console.WriteLine(num);
            }
        }
    }
        

Output:

First element: 10
All elements:
10
20
30
After removal:
10
30

2. Dictionary

A Dictionary is a collection of key-value pairs. Each key must be unique, and it is used to retrieve the corresponding value.

Example: Using a Dictionary

    using System;
    using System.Collections.Generic;
   class Program {
        static void Main() {
            // Create a Dictionary
            Dictionary ages = new Dictionary();
           // Add key-value pairs
            ages["Alice"] = 25;
            ages["Bob"] = 30;
            ages["Charlie"] = 35;
           // Access values by key
            Console.WriteLine("Alice's age: " + ages["Alice"]);
           // Iterate through the Dictionary
            Console.WriteLine("All entries:");
            foreach (var entry in ages) {
                Console.WriteLine(entry.Key + ": " + entry.Value);
            }
        }
    }
        

Output:

Alice's age: 25
All entries:
Alice: 25
Bob: 30
Charlie: 35

3. Queue

A Queue is a collection that follows the First-In-First-Out (FIFO) principle. Items are added at the end and removed from the front.

Example: Using a Queue

    using System;
    using System.Collections.Generic;
   class Program {
        static void Main() {
            // Create a Queue
            Queue queue = new Queue();
           // Add elements
            queue.Enqueue("Alice");
            queue.Enqueue("Bob");
            queue.Enqueue("Charlie");
           // Access and remove elements
            Console.WriteLine("Dequeued: " + queue.Dequeue());
           // Iterate through the Queue
            Console.WriteLine("Remaining elements:");
            foreach (string name in queue) {
                Console.WriteLine(name);
            }
        }
    }
        

Output:

Dequeued: Alice
Remaining elements:
Bob
Charlie

4. Stack

A Stack is a collection that follows the Last-In-First-Out (LIFO) principle. Items are added to and removed from the top.

Example: Using a Stack

    using System;
    using System.Collections.Generic;
   class Program {
        static void Main() {
            // Create a Stack
            Stack stack = new Stack();
           // Add elements
            stack.Push("Alice");
            stack.Push("Bob");
            stack.Push("Charlie");
           // Access and remove elements
            Console.WriteLine("Popped: " + stack.Pop());
           // Iterate through the Stack
            Console.WriteLine("Remaining elements:");
            foreach (string name in stack) {
                Console.WriteLine(name);
            }
        }
    }
        

Output:

Popped: Charlie
Remaining elements:
Bob
Alice

Comparison of Collections

Collection Order Duplicates Key-Value Pair
List Maintains insertion order Allows duplicates No
Dictionary Keys unordered Keys must be unique Yes
Queue FIFO Allows duplicates No
Stack LIFO Allows duplicates No

Conclusion

Collections in C# provide powerful tools for managing groups of objects. By understanding the characteristics and use cases of List, Dictionary, Queue, and Stack, you can select the appropriate collection for your application needs.




Advertisement