System.Collections.Generic Namespace
.NET Framework 4
The System.Collections.Generic namespace contains interfaces and classes that define generic collections, which allow users to create strongly typed collections that provide better type safety and performance than non-generic strongly typed collections.
| Class | Description | |
|---|---|---|
|
Comparer<T> | Provides a base class for implementations of the IComparer<T> generic interface. |
|
Dictionary<TKey, TValue> | Represents a collection of keys and values. |
|
Dictionary<TKey, TValue>.KeyCollection | Represents the collection of keys in a Dictionary<TKey, TValue>. This class cannot be inherited. |
|
Dictionary<TKey, TValue>.ValueCollection | Represents the collection of values in a Dictionary<TKey, TValue>. This class cannot be inherited. |
|
EqualityComparer<T> | Provides a base class for implementations of the IEqualityComparer<T> generic interface. |
|
HashSet<T> | Represents a set of values. |
|
KeyedByTypeCollection<TItem> | Provides a collection whose items are types that serve as keys. |
|
KeyNotFoundException | The exception that is thrown when the key specified for accessing an element in a collection does not match any key in the collection. |
|
LinkedList<T> | Represents a doubly linked list. |
|
LinkedListNode<T> | Represents a node in a LinkedList<T>. This class cannot be inherited. |
|
List<T> | Represents a strongly typed list of objects that can be accessed by index. Provides methods to search, sort, and manipulate lists. |
|
Queue<T> | Represents a first-in, first-out collection of objects. |
|
SortedDictionary<TKey, TValue> | Represents a collection of key/value pairs that are sorted on the key. |
|
SortedDictionary<TKey, TValue>.KeyCollection | Represents the collection of keys in a SortedDictionary<TKey, TValue>. This class cannot be inherited. |
|
SortedDictionary<TKey, TValue>.ValueCollection | Represents the collection of values in a SortedDictionary<TKey, TValue>. This class cannot be inherited |
|
SortedList<TKey, TValue> | Represents a collection of key/value pairs that are sorted by key based on the associated IComparer<T> implementation. |
|
SortedSet<T> | Represents a collection of objects that is maintained in sorted order. |
|
Stack<T> | Represents a variable size last-in-first-out (LIFO) collection of instances of the same arbitrary type. |
|
SynchronizedCollection<T> | Provides a thread-safe collection that contains objects of a type specified by the generic parameter as elements. |
|
SynchronizedKeyedCollection<K, T> | Provides a thread-safe collection that contains objects of a type specified by a generic parameter and that are grouped by keys. |
|
SynchronizedReadOnlyCollection<T> | Provides a thread-safe, read-only collection that contains objects of a type specified by the generic parameter as elements. |
| Interface | Description | |
|---|---|---|
|
ICollection<T> | Defines methods to manipulate generic collections. |
|
IComparer<T> | Defines a method that a type implements to compare two objects. |
|
IDictionary<TKey, TValue> | Represents a generic collection of key/value pairs. |
|
IEnumerable<T> | Exposes the enumerator, which supports a simple iteration over a collection of a specified type. |
|
IEnumerator<T> | Supports a simple iteration over a generic collection. |
|
IEqualityComparer<T> | Defines methods to support the comparison of objects for equality. |
|
IList<T> | Represents a collection of objects that can be individually accessed by index. |
|
ISet<T> | Provides the base interface for the abstraction of sets. |
Need performance consideration and comparision of feature list
Performance considerations and perhaps a comparision of feature list between different collections will help highly to make better apps. Why no C# syntax ? Need a little more explanation too.
- 2/7/2012
- SivaJi
@Chomilino - Here's a tree class for ya
public class Node<T>
public List<Node<T>> Children = new List<Node<T>>();
public T Value;
end class
Use it like this:
Node<string> root = new Node<string>() { Value = "I am the root node!" };
Node<string> child = new Node<string>() { Value = "I am a child of the root node!" };
root.Children.Add(child);
Node<string> sibling = new Node<string>() { Value = "I am a sibling of child!" };
root.Children.Add(sibling);
Node<string> grandchild = new Node<string>() { Value = "I am a grandchild of the root node!"};
child.Children.Add(grandchild);
public List<Node<T>> Children = new List<Node<T>>();
public T Value;
end class
Use it like this:
Node<string> root = new Node<string>() { Value = "I am the root node!" };
Node<string> child = new Node<string>() { Value = "I am a child of the root node!" };
root.Children.Add(child);
Node<string> sibling = new Node<string>() { Value = "I am a sibling of child!" };
root.Children.Add(sibling);
Node<string> grandchild = new Node<string>() { Value = "I am a grandchild of the root node!"};
child.Children.Add(grandchild);
- 11/14/2011
- hoodaticus
Yea performance indicators would be helpful for these collections
But I guess, they are more or less same as the structure name conveys (List, Hashtable etc. ) in theory. But definitely I have come across significant variations due to the implementation differences. So the performance indicators (O notation) should be made available for various operations.
- 5/8/2011
- MunishGoyal[MSFT]