Коллекции и структуры данных
Связанные данные могут обрабатываться более эффективно, если они объединены в коллекцию. Вместо того чтобы писать код для обработки каждого отдельного объекта, можно использовать один и тот же код для обработки всех элементов коллекции.
Для управления коллекцией используйте класс 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>, поддерживающие безопасный и эффективный одновременный доступ из нескольких потоков. |
|
Рассматриваются вопросы выбора оптимального типа коллекции, перечисления коллекций, использования коллекций с несколькими потоками, а также сортировки коллекций. |
|
Рассматривает использование типов универсальных коллекций. |