This documentation is archived and is not being maintained.

Creating and Manipulating Collections

The most common collections are provided by the .NET Framework. You can use any of them or create your own collection based on one of them. Each collection is designed for specific purposes. The members included in each System.Collections class reflect the purpose of the collection. In addition, the generic collections in System.Collections.Generic make it easy to create strongly typed collections.

If you decide to implement your own collection, use the following guidelines:

Selecting a Collection Class

Provides guidance for selecting the most appropriate collection type.

Enumerating a Collection

Discusses enumerators and their use with collections.

Collections and Synchronization (Thread Safety)

Discusses the use of collections in multithreaded applications.

Comparisons and Sorts Within Collections

Discusses the use of equality comparisons and sorting comparisons in collections.


Provides reference documentation for the System.Collections namespace, which contains interfaces and classes that define various collections of objects.


Provides reference documentation for the System.Collections.Specialized namespace, which contains specialized and strongly-typed collections.


Provides reference documentation for the System.Collections.Generic namespace, which contains interfaces and classes that define generic collections.

Collections and Data Structures

Discusses the various collection types available in the .NET Framework, including stacks, queues, lists, arrays, and structs.

Serialization Concepts

Discusses two scenarios where serialization is useful: when persisting data to storage and when passing objects across application domains.