Generic Collections: Microsoft Certification Exam 70-486
Generic Collections: Microsoft Certification Exam 70-486
ArrayList
Queue
Stack
Hashtable
SortedList
Add anything.
Typecast on removal.
2
Generics
Collection Classes
using System.Collections.Generic;
for generics
Included in the default C# template
using System.Collections;
Generics
Not a macro!
Insert
Delete
List<T> Methods
Add (T item)
Remove (T item)
List<T> Methods
Clear()
Sort()
... more
8
List<T> Indexer
int_list[5] = 17;
List<T> Properties
Count
10
List<T> Example
11
List<int> Example
static void Main(string[] args)
{
List<int> ints = new List<int>();
ints.Add(1);
ints.Add(2);
ints.Add(3);
foreach (int i in ints)
{
Console.WriteLine(i.ToString() );
}
Console.ReadLine();
}
12
13
List<Circle> Example
using System;
using System.Collections.Generic;
class Program
{
static void Main(string[] args)
{
List<Circle> circles = new List<Circle>();
circles.Add(new Circle("C1", 1.0));
circles.Add(new Circle("C2", 2.0));
circles.Add(new Circle("c3", 3.0));
foreach (Circle c in circles)
{
Console.WriteLine(c.Name());
}
Console.ReadLine();
}
}
14
15
Same result
16
Inserting
static void Main(string[] args)
{
List<Circle> circles = new List<Circle>();
circles.Add(new Circle("C1", 1.0));
circles.Add(new Circle("C2", 2.0));
circles.Add(new Circle("c3", 3.0));
Circle c4 = new Circle("C4", 4.0);
circles.Insert(2, c4);
for (int i = 0; i < circles.Count; ++i)
{
Console.WriteLine(circles[i].Name());
}
Console.ReadLine();
}
17
Inserting
18
19
20
Sorting
IComparable interface
Same as strcmp() in C
Implementing IComparable
class Circle : IComparable<Circle>
{
private String name;
private double radius = 0.0;
...
public int CompareTo(Circle other)
{
if (this.radius < other.radius)
return -1;
else if (this.radius > other.radius)
return 1;
else
return 0;
}
Using Sort()
Program Running
End of Section
Queue<T>
http://msdn.microsoft.com/en-us/library/7977ey2c.aspx
Methods
Enqueue (T item)
T Dequeue()
Queue<Circle> Example
static void Main(string[] args)
{
Queue<Circle> circles = new Queue<Circle>();
circles.Enqueue(new Circle("C1", 1.0));
circles.Enqueue(new Circle("C2", 2.0));
circles.Enqueue(new Circle("c3", 3.0));
while (circles.Count > 0)
{
Circle c = circles.Dequeue();
Console.WriteLine(c.Name());
}
Console.ReadLine();
}
27
28
Dictionary<K,V>
http://msdn.microsoft.com/en-us/library/xfhwa508(VS.80).aspx
Class KeyValuePair<K,V>
Template parameters
K is type of Key
V is type of Value
29
Dictionary<K,V> Example
static void Main(string[] args)
{
Dictionary<String, Circle> circles =
new Dictionary<String, Circle>();
circles.Add("c1", new Circle("C1", 1.0));
circles.Add("c2", new Circle("C2", 2.0));
circles.Add("c3", new Circle("c3", 3.0));
foreach (KeyValuePair<String, Circle> kvp in circles)
{
String k = kvp.Key;
Circle c = kvp.Value;
Console.WriteLine("Circle {0} has radius {1}",
k, c.Radius());
}
Console.ReadLine();
}
30
Dictionary<K,V> Example
31
32
33
About Dictionary<K,V>
35
36
Linked List
(No array operations)
SortedDictionary
SortedList
Stack
37