(Generic is more important but non generic is not much important)
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.Specialized;
class Program
{
static void Main()
{
// Non-Generic Collections
// ArrayList (Non-Generic)
ArrayList nonGenericList = new ArrayList();
nonGenericList.Add(42);
nonGenericList.Add("Hello, Non-Generic!");
// Hashtable (Non-Generic)
Hashtable nonGenericDictionary = new Hashtable();
nonGenericDictionary.Add("Key", 123);
// SortedList (Non-Generic)
SortedList nonGenericSortedList = new SortedList();
nonGenericSortedList.Add("Second", 2);
nonGenericSortedList.Add("First", 1);
// BitArray (Non-Generic)
BitArray nonGenericBitArray = new BitArray(new[] { true, false, true, false });
// Generic Collections
// List<T> (Generic) --->[Like C++ Vector]
List<int> genericList = new List<int>();
genericList.Add(42);
// Dictionary<TKey, TValue> (Generic) --->[Like c++ Map]
Dictionary<string, double> genericDictionary = new Dictionary<string, double>();
genericDictionary.Add("Value1", 3.14);
// HashSet<T> (Generic) --->[Like C++ set , here only keep unique value]
HashSet<int> genericHashSet = new HashSet<int>();
genericHashSet.Add(1);
genericHashSet.Add(2);
// Stack<T> (Generic)
Stack<string> genericStack = new Stack<string>();
genericStack.Push("First");
genericStack.Push("Second");
// Queue<T> (Generic)
Queue<string> genericQueue = new Queue<string>();
genericQueue.Enqueue("First");
genericQueue.Enqueue("Second");
// SortedDictionary<TKey, TValue> (Generic)
SortedDictionary<string, int> genericSortedDictionary = new SortedDictionary<string, int>();
genericSortedDictionary.Add("Second", 2);
genericSortedDictionary.Add("First", 1);
// SortedSet<T> (Generic)
SortedSet<int> genericSortedSet = new SortedSet<int>();
genericSortedSet.Add(3);
genericSortedSet.Add(1);
genericSortedSet.Add(2);
// LinkedList<T> (Generic)
LinkedList<int> genericLinkedList = new LinkedList<int>();
genericLinkedList.AddLast(1);
genericLinkedList.AddLast(2);
genericLinkedList.AddLast(3);
// Displaying Values
Console.WriteLine("Non-Generic ArrayList:");
foreach (var item in nonGenericList)
{
Console.WriteLine(item);
}
Console.WriteLine("\nNon-Generic Hashtable:");
foreach (DictionaryEntry entry in nonGenericDictionary)
{
Console.WriteLine($"{entry.Key}: {entry.Value}");
}
Console.WriteLine("\nNon-Generic SortedList:");
foreach (DictionaryEntry entry in nonGenericSortedList)
{
Console.WriteLine($"{entry.Key}: {entry.Value}");
}
Console.WriteLine("\nNon-Generic BitArray:");
foreach (bool bit in nonGenericBitArray)
{
Console.Write(bit ? "1 " : "0 ");
}
Console.WriteLine("\nGeneric List<int>:");
foreach (var item in genericList)
{
Console.WriteLine(item);
}
Console.WriteLine("\nGeneric Dictionary<string, double>:");
foreach (var kvp in genericDictionary)
{
Console.WriteLine($"{kvp.Key}: {kvp.Value}");
}
Console.WriteLine("\nGeneric HashSet<int>:");
foreach (var item in genericHashSet)
{
Console.WriteLine(item);
}
Console.WriteLine("\nGeneric Stack<string>:");
while (genericStack.Count > 0)
{
Console.WriteLine(genericStack.Pop());
}
Console.WriteLine("\nGeneric Queue<string>:");
while (genericQueue.Count > 0)
{
Console.WriteLine(genericQueue.Dequeue());
}
Console.WriteLine("\nGeneric SortedDictionary<string, int>:");
foreach (var kvp in genericSortedDictionary)
{
Console.WriteLine($"{kvp.Key}: {kvp.Value}");
}
Console.WriteLine("\nGeneric SortedSet<int>:");
foreach (var item in genericSortedSet)
{
Console.WriteLine(item);
}
Console.WriteLine("\nGeneric LinkedList<int>:");
foreach (var item in genericLinkedList)
{
Console.WriteLine(item);
}
}
}