System.Collections.Immutable Пространство имен
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Содержит интерфейсы и классы, определяющие неизменяемые коллекции.
Классы
| Имя | Описание |
|---|---|
| ImmutableArray |
Предоставляет методы для создания массива, который является неизменяемым, то есть его нельзя изменить после его создания. |
| ImmutableArray<T>.Builder |
Представляет средство доступа к записываемому массиву, которое можно преобразовать в ImmutableArray<T> экземпляр без выделения дополнительной памяти. |
| ImmutableDictionary |
Предоставляет набор методов инициализации для экземпляров ImmutableDictionary<TKey,TValue> класса. |
| ImmutableDictionary<TKey,TValue>.Builder |
Представляет хэш-карту, которая мутирует с небольшим или без выделения памяти и которая может эффективно создавать или создавать неизменяемые экземпляры хэш-карты. |
| ImmutableDictionary<TKey,TValue> |
Представляет неизменяемую, неупорядоченную коллекцию ключей и значений. |
| ImmutableHashSet |
Предоставляет набор методов инициализации для экземпляров ImmutableHashSet<T> класса. |
| ImmutableHashSet<T>.Builder |
Представляет хэш-набор, который мутирует с небольшим или без выделения памяти и может эффективно создавать или создавать экземпляры неизменяемого хэш-набора. |
| ImmutableHashSet<T> |
Представляет неизменяемый неупорядоченный хэш-набор. |
| ImmutableInterlocked |
Содержит механизмы переблокированного обмена для неизменяемых коллекций. |
| ImmutableList |
Предоставляет набор методов инициализации для экземпляров ImmutableList<T> класса. |
| ImmutableList<T>.Builder |
Представляет список, который мутирует с небольшим или без выделения памяти, и который может эффективно создавать или создавать неизменяемые экземпляры списка. |
| ImmutableList<T> |
Представляет неизменяемый список, который является строго типизированным списком объектов, к которым можно получить доступ по индексу. |
| ImmutableQueue |
Предоставляет набор методов инициализации для экземпляров ImmutableQueue<T> класса. |
| ImmutableQueue<T> |
Представляет неизменяемую очередь. |
| ImmutableSortedDictionary |
Предоставляет набор методов инициализации для экземпляров ImmutableSortedDictionary<TKey,TValue> класса. |
| ImmutableSortedDictionary<TKey,TValue>.Builder |
Представляет отсортированный словарь, который мутирует без выделения памяти и может эффективно создавать или создавать неизменяемые экземпляры сортируемых словарей. |
| ImmutableSortedDictionary<TKey,TValue> |
Представляет неизменяемый отсортированный словарь. |
| ImmutableSortedSet |
Предоставляет набор методов инициализации для экземпляров ImmutableSortedSet<T> класса. |
| ImmutableSortedSet<T>.Builder |
Представляет отсортированный набор, который включает изменения с небольшим или без выделения памяти, а также эффективно управляет или создает неизменяемые отсортированные наборы. |
| ImmutableSortedSet<T> |
Представляет неизменяемую реализацию отсортированного набора. |
| ImmutableStack |
Предоставляет набор методов инициализации для экземпляров ImmutableStack<T> класса. |
| ImmutableStack<T> |
Представляет неизменяемый стек. |
Структуры
| Имя | Описание |
|---|---|
| ImmutableArray<T>.Enumerator |
Представляет перечислитель массива. |
| ImmutableArray<T> |
Представляет неизменяемый массив, т. е. его нельзя изменить после его создания. |
| ImmutableDictionary<TKey,TValue>.Enumerator |
Перечисляет содержимое неизменяемого словаря без выделения памяти. |
| ImmutableHashSet<T>.Enumerator |
Перечисляет содержимое неизменяемого хэш-набора без выделения памяти. |
| ImmutableList<T>.Enumerator |
Перечисляет содержимое двоичного дерева. |
| ImmutableQueue<T>.Enumerator |
Перечисляет содержимое неизменяемой очереди без выделения памяти. |
| ImmutableSortedDictionary<TKey,TValue>.Enumerator |
Перечисляет содержимое двоичного дерева. |
| ImmutableSortedSet<T>.Enumerator |
Перечисляет содержимое двоичного дерева. |
| ImmutableStack<T>.Enumerator |
Перечисляет содержимое неизменяемого стека без выделения памяти. |
Интерфейсы
| Имя | Описание |
|---|---|
| IImmutableDictionary<TKey,TValue> |
Представляет неизменяемую коллекцию пар "ключ-значение". |
| IImmutableList<T> |
Представляет список элементов, которые нельзя изменить. |
| IImmutableQueue<T> |
Представляет неизменяемую коллекцию объектов. |
| IImmutableSet<T> |
Представляет набор элементов, которые можно изменить только путем создания нового экземпляра набора. |
| IImmutableStack<T> |
Представляет неизменяемую коллекцию last-in-out (LIFO). |
Комментарии
С помощью неизменяемых коллекций можно:
- Предоставление общего доступа к коллекции таким образом, чтобы его потребитель не был уверен, что коллекция никогда не изменяется.
- Обеспечение неявной безопасности потоков в многопоточных приложениях (для доступа к коллекциям не требуется блокировки).
- Следуйте рекомендациям по функциональному программированию.
- Измените коллекцию во время перечисления, гарантируя, что исходная коллекция не изменяется.