Коллекции и структуры данных

Связанные данные могут обрабатываться более эффективно, если они объединены в коллекцию. Вместо того чтобы писать код для обработки каждого отдельного объекта, можно использовать один и тот же код для обработки всех элементов коллекции.

Для управления коллекцией используйте класс System.Array и классы из пространств имен System.Collections, System.Collections.Generic и System.Collections.Concurrent для добавления, удаления и изменения либо отдельных элементов коллекции, либо диапазона элементов. Коллекцию можно скопировать целиком в другую коллекцию.

Некоторые классы System.Collections предоставляют возможность сортировки, и большинство из них индексированы. Управление памятью осуществляется автоматически, а вместимость коллекции увеличивается по мере необходимости. Синхронизация обеспечивает потокобезопасность при доступе к членам коллекции. Некоторые классы System.Collections могут создавать обертки, которые создают коллекции фиксированного размера или с ограничением только чтение. Любой класс System.Collections может создать свой собственный нумератор, облегчающий выполнение итерации элементов.

В .NET Framework 2.0 классы универсальных коллекций предоставляют новые функциональные возможности и облегчают создание строго типизированных коллекций. Обратитесь к описанию пространств имен System.Collections.Generic и System.Collections.ObjectModel.

В .NET Framework 4 коллекции из пространства имен System.Collections.Concurrent предоставляют эффективные потокобезопасные операции для доступа к элементам коллекций из нескольких потоков.

Функция LINQ to Objects позволяет использовать запросы LINQ для доступа к объектам в памяти, если тип объекта реализует интерфейс System.Collections.IEnumerable или System.Collections.Generic.IEnumerable<T>. LINQ запросы предоставляют общий шаблон для доступа к данным, являются более четкими и удобочитаемыми, чем стандартные циклы foreach, а также предоставляют возможности фильтрации, сортировки и группировки. LINQ запросы также могут повысить производительность. Дополнительные сведения см. в разделах LINQ to Objects и Parallel LINQ (PLINQ).

Связанные разделы

Заголовок

Описание

Определение коллекций

Описывает, что такое типы коллекций, а также объясняет различия между типами универсальных и неуниверсальных коллекций в библиотеке классов .NET Framework.

Часто используемые типы коллекций

Описывает часто используемые типы универсальных и неуниверсальных коллекций, таких как System.Array, System.Collections.Generic.List<T> и System.Collections.Generic.Dictionary<TKey, TValue>.

Битовые коллекции

Описывает типы коллекций System.Collections.BitArray и System.Collections.Specialized.BitVector32.

Специализированные коллекции

Описывает специализированные коллекции, такие как System.Collections.Specialized.NameValueCollection, System.Collections.Specialized.StringDictionary и System.Collections.Specialized.StringCollection.

Потокобезопасные коллекции

Описывает типы коллекций, такие как System.Collections.Concurrent.BlockingCollection<T> и System.Collections.Concurrent.ConcurrentBag<T>, поддерживающие безопасный и эффективный одновременный доступ из нескольких потоков.

Управление коллекциями и их создание

Рассматриваются вопросы выбора оптимального типа коллекции, перечисления коллекций, использования коллекций с несколькими потоками, а также сортировки коллекций.

Когда следует использовать универсальные коллекции

Рассматривает использование типов универсальных коллекций.

Ссылки

System.Array

System.Collections

System.Collections.Concurrent

System.Collections.Generic

System.Collections.Specialized

System.Linq