Collections and Data Structures
Microsoft Silverlight will reach end of support after October 2021. Learn more.
Closely related data can be handled more efficiently when grouped together into a collection. Instead of writing separate code to handle each individual object, you can use the same code to process all the elements of a collection.
Some Collections classes have sorting capabilities, and most are indexed. Memory management is handled automatically, and the capacity of a collection is expanded as required. Synchronization provides thread safety when accessing members of the collection. Some Collections classes can generate wrappers that make the collection read-only or fixed-size. Any Collections class can generate its own enumerator that makes it easy to iterate through the elements.
The LINQ to Objects feature allows you to use LINQ queries to access in-memory objects as long as the object type implements IEnumerable or IEnumerable<T>. LINQ queries provide a common pattern for accessing data; are typically more concise and readable than standard foreach loops; and provide filtering, ordering and grouping capabilities. LINQ queries can also improve performance. For more information, see LINQ to Objects.
In This Section
Describes what collection types are, and some differences between generic and nongeneric collection types in the .NET Framework class library.
Creating and Manipulating Collections
Discusses selecting the best collection type, enumerating collections, using collections with multiple threads, and sorting collections.
When to Use Generic Collections
Discusses the use of generic collection types.
Describes the major features of the Array class, which provides methods for creating, manipulating, searching, and sorting arrays, thereby serving as the base class for all arrays in the common language runtime.