Collection in C#, What is Collection in C#?
It is the collection of elements of similar and dissimilar type both, it is used to solve the limitation of the array, we can store elements dynamically without providing any size.
Type of Collection Objects in C#:-
1) Generic Collection:-
List
Dictionary
SortedList
HashSet
Stack
Queue
2) Non Generic Collection:-
ArrayList
Hashtable
SortedList
Stack
Queue
ArrayList
ArrayList stores objects of any type like an array. However, there is no need to specify the size of the ArrayList like with an array as it grows automatically.
class CollectionExample
{
static void Main()
{
ArrayList obj = new ArrayList();
obj.Add(1001);
obj.Add("C");
obj.Add("CPP");
obj.Add(12.34F);
obj.Remove(1001);
foreach (Object o in obj)
{
Console.WriteLine(o);
}
Console.ReadKey();
}
}
List:-
List<Student> students = new List<Student>();
students.Add(new Student(1, "stu1", 34, 24000));
students.Add(new Student(2, "stu2", 34, 24000));
students.Add(new Student(3, "stu3", 54, 24000));
students.Add(new Student(4, "stu4", 34, 84000));
foreach (var student in students)
{
student.Display();
}
SortedList
SortedList stores key and value pairs. It automatically arranges elements in ascending order of key by default. C# includes both, generic and non-generic SortedList collection.
SortedList obj = new SortedList();
obj.Add("D", 101);
obj.Add("B","CPP");
obj.Add("A",1);
obj.Add("C",true);
foreach (DictionaryEntry o in obj)
{
Console.WriteLine(o.Key+ " " + o.Value);
}
Stack
Stack stores the values in LIFO style (Last In First Out). It provides a Push() method to add a value and Pop() & Peek() methods to retrieve values. C# includes both, generic and nongeneric Stack.
Stack<int> stack = new Stack<int>();
stack.Push(1);
stack.Push(2);
stack.Push(3);
stack.Push(4);
stack.Push(5);
while(stack.Count > 0)
{
Console.WriteLine(stack.Pop());
}
Queue
Queue stores the values in FIFO style (First In First Out). It keeps the order in which the values were added. It provides an Enqueue() method to add values and a Dequeue() method to retrieve values from the collection. C# includes generic and non-generic Queue.
Queue<int> q = new Queue<int>();
q.Enqueue(1);
q.Enqueue(2);
q.Enqueue(3);
q.Enqueue(4);
q.Enqueue(5);
while (q.Count > 0)
{
Console.WriteLine(q.Dequeue());
}
Hashtable
Hashtable stores key and value pairs. It retrieves the values by comparing the hash value of the keys. BitArray BitArray manages a compact array of bit values, which are represented as Booleans, where true indicates that the bit is on (1) and false indicates the bit is off (0).
Hashtable obj = new Hashtable();
obj.Add("D", 101);
obj.Add("B","CPP");
obj.Add("A",1);
obj.Add("C",true);
foreach (DictionaryEntry o in obj)
{
Console.WriteLine(o.Key+ " " + o.Value);
}
Dictionary:-
Dictionary<String, Int32> obj1 = new Dictionary<String,Int32>();
obj1.Add("A", 101);
obj1.Add("D", 455);
obj1.Add("B", 201);
obj1.Add("C", 301);
foreach (KeyValuePair<String,Int32> o in obj1)
{
Console.WriteLine(o.Key + " " + o.Value);
}
HashSet:-
HashSet<string> st = new HashSet<string>();
st.Add("a");
st.Add("b");
st.Add("c");
st.Add("b");
st.Add("b");
st.Add("d");
st.Add("e");
st.Remove("a");
foreach (var item in st)
{
Console.WriteLine(item);
}
Please explain the difference b/w List vs Array List
ReplyDelete