Поделиться через


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).

Комментарии

С помощью неизменяемых коллекций можно:

  • Предоставление общего доступа к коллекции таким образом, чтобы его потребитель не был уверен, что коллекция никогда не изменяется.
  • Обеспечение неявной безопасности потоков в многопоточных приложениях (для доступа к коллекциям не требуется блокировки).
  • Следуйте рекомендациям по функциональному программированию.
  • Измените коллекцию во время перечисления, гарантируя, что исходная коллекция не изменяется.