55 out of 167 rated this helpful - Rate this topic

System.Collections.Generic Namespace

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
Public class Comparer Provides a base class for implementations of the IComparer generic interface.
Public class Dictionary Represents a collection of keys and values.
Public class Dictionary.KeyCollection Represents the collection of keys in a Dictionary. This class cannot be inherited.
Public class Dictionary.ValueCollection Represents the collection of values in a Dictionary. This class cannot be inherited.
Public class EqualityComparer Provides a base class for implementations of the IEqualityComparer generic interface.
Public class KeyedByTypeCollection Provides a collection whose items are types that serve as keys.
Public class 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.
Public class LinkedList Represents a doubly linked list.
Public class LinkedListNode Represents a node in a LinkedList. This class cannot be inherited.
Public class List Represents a strongly typed list of objects that can be accessed by index. Provides methods to search, sort, and manipulate lists.
Public class Queue Represents a first-in, first-out collection of objects.
Public class SortedDictionary Represents a collection of key/value pairs that are sorted on the key.
Public class SortedDictionary.KeyCollection Represents the collection of keys in a SortedDictionary. This class cannot be inherited.
Public class SortedDictionary.ValueCollection Represents the collection of values in a SortedDictionary. This class cannot be inherited
Public class SortedList Represents a collection of key/value pairs that are sorted by key based on the associated IComparer implementation.
Public class Stack Represents a variable size last-in-first-out (LIFO) collection of instances of the same arbitrary type.
Public class SynchronizedCollection Provides a thread-safe collection that contains objects of a type specified by the generic parameter as elements.
Public class SynchronizedKeyedCollection Provides a thread-safe collection that contains objects of a type specified by a generic parameter and that are grouped by keys.
Public class SynchronizedReadOnlyCollection  
  Interface Description
Public interface ICollection Defines methods to manipulate generic collections.
Public interface IComparer Defines a method that a type implements to compare two objects.
Public interface IDictionary Represents a generic collection of key/value pairs.
Public interface IEnumerable Exposes the enumerator, which supports a simple iteration over a collection of a specified type.
Public interface IEnumerator Supports a simple iteration over a generic collection.
Public interface IEqualityComparer Defines methods to support the comparison of objects for equality.
Public interface IList Represents a collection of objects that can be individually accessed by index.
  Structure Description
Public structure Dictionary.Enumerator Enumerates the elements of a Dictionary.
Public structure Dictionary.KeyCollection.Enumerator Enumerates the elements of a Dictionary.KeyCollection.
Public structure Dictionary.ValueCollection.Enumerator Enumerates the elements of a Dictionary.ValueCollection.
Public structure KeyValuePair Defines a key/value pair that can be set or retrieved.
Public structure LinkedList.Enumerator Enumerates the elements of a LinkedList.
Public structure List.Enumerator Enumerates the elements of a List.
Public structure Queue.Enumerator Enumerates the elements of a Queue.
Public structure SortedDictionary.Enumerator Enumerates the elements of a SortedDictionary.
Public structure SortedDictionary.KeyCollection.Enumerator Enumerates the elements of a SortedDictionary.KeyCollection.
Public structure SortedDictionary.ValueCollection.Enumerator Enumerates the elements of a SortedDictionary.ValueCollection.
Public structure Stack.Enumerator Enumerates the elements of a Stack.
Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ
Some general guidance on the generics collections

I wrote an article on this topic some time ago and I still think it's pretty good. You can find the full article here; I've included the introduction and resources below for your convenience.

Six Questions about Generics and Performance


Here are some comments from a recent discussion on Generics that I thought were generally useful. The comments have been edited so that they fit better with the general format of a Q&A session. The origin of this discussion was some commentary on the cost associated with creating instances of generic types where the type parameter is a value-type -- that case is interesting because the code for those classes cannot be shared like it can for reference types, so there can be considerable cost associated with their use.

As always many of these questions would require whole tomes to answer fully, so I'm giving an answer that's brief but only approximately correct. For additional information on Generics please see these links:

http://blogs.msdn.com/kcwalina/archive/2004/03/15/89860.aspx
http://www.15seconds.com/issue/031024.htm
http://research.microsoft.com/projects/clrgen/generics.pdf