Page 28 : 36
Object-oriented Programming in C#
Collection Classes
* Collections - History and Overview
A historic View on Collection Programming
* Generic Collections in C#
Overview of Generic Collections in C#
The Interface
IEnumerable<T>
The Interface
ICollection<T>
The Interface
IList<T>
Overview of the class
Collection<T>
Sample use of class
Collection<T>
Specialization of Collections
Specialization of Collections - a realistic example
Overview of the class
List<T>
Sample use of class
List<T>
Sample use of the Find operations in
List<T>
Sample use of Sort in
List<T>
Sample use of BinarySearch in
List<T>
Overview of the class
LinkedList<T>
The class
LinkedListNode<T>
Sample use of class
LinkedList<T>
Time complexity overview: Collection classes
Using Collections through Interfaces
* Generic Dictionaries in C#
Dictionaries
Overview of Generic Dictionaries in C#
The interface
IDictionary<K,V>
Overview of the class
Dictionary<K,V>
Sample use of class
Dictionary<K,V>
Notes about Dictionary Classes
Time complexity overview: Dictionary classes
* Non-generic Collections in C#
The non-generic collection library in C#
Notes about non-generic Collections
* Patterns and Techniques
The Iterator Design Pattern
Making iterators with yield return
Iterator blocks and yield return
Notes about Dictionary Classes
The generic dictionary tree
Class
Dictionary<K,V>
Based on a hash table
Requires that the keys in type
K
can be compared by an
Equals
operation
Key values should not be mutated
The efficiency of class dictionary relies on a good hash function for the key type
K
Consider overriding the method
GetHashCode
in class
K
A dictionary is enumerated in terms of the struct
KeyValuePair<K,V>
Class
SortedDictionary<K,V>
Based on a binary search tree
Requires an
IComparer
for keys of type
K
- for ordering purposes
Provided when a sorted dictionary is constructed
Class
SortedList<K,V>
Based on a sorted collection of key/value pairs
A resizeable array
Requires an
IComparer
for keys, just like
SortedDictionary<K,V>
.
Requires less memory than
SortedDictionary<K,V>
.