System.Collections.Immutable Пространство имен

Содержит интерфейсы и классы, которые определяют неизменяемые коллекции.

Классы

ImmutableArray

Содержит методы для создания неизменяемого массива (это означает, что изменить его после создания невозможно).

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)

ImmutableArray<T>.Builder

Записываемый метод доступа к массиву, который можно преобразовать в экземпляр ImmutableArray<T> без выделения дополнительной памяти.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)

ImmutableDictionary

Содержит набор методов инициализации для экземпляров класса ImmutableDictionary<TKey,TValue>.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)

ImmutableDictionary<TKey,TValue>.Builder

Представляет хэш-карту, для изменения которой не требуется выделение памяти (или выделяется небольшой объем) и с помощью которой можно эффективно создавать или конструировать экземпляры неизменяемых хэш-карт.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)

ImmutableDictionary<TKey,TValue>

Представляет неизменяемую неупорядоченную коллекцию ключей и значений.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)

ImmutableHashSet

Содержит набор методов инициализации для экземпляров класса ImmutableHashSet<T>.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)

ImmutableHashSet<T>.Builder

Представляет набор хэширования, для изменения которого не требуется выделение памяти (или выделяется небольшой объем) и с помощью которого можно эффективно создавать или конструировать экземпляры неизменяемых наборов хэширования.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)

ImmutableHashSet<T>

Представляет неизменяемый неупорядоченный набор хэширования.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)

ImmutableInterlocked

Содержит механизмы обмена с взаимоблокировкой для неизменяемых коллекций.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)

ImmutableList

Содержит набор методов инициализации для экземпляров класса ImmutableList<T>.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)

ImmutableList<T>.Builder

Представляет список, для изменения которого не требуется выделение памяти (или выделяется небольшой объем) и с помощью которого можно эффективно создавать или конструировать экземпляры неизменяемых списков.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)

ImmutableList<T>

Представляет строго типизированный неизменяемый список объектов, доступных по индексу.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)

ImmutableQueue

Содержит набор методов инициализации для экземпляров класса ImmutableQueue<T>.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)

ImmutableQueue<T>

Представляет неизменяемую очередь.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)

ImmutableSortedDictionary

Содержит набор методов инициализации для экземпляров класса ImmutableSortedDictionary<TKey,TValue>.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)

ImmutableSortedDictionary<TKey,TValue>.Builder

Представляет отсортированный словарь, для изменения которого не требуется выделение памяти (или выделяется небольшой объем) и с помощью которого можно эффективно создавать или конструировать экземпляры неизменяемых отсортированных словарей.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)

ImmutableSortedDictionary<TKey,TValue>

Представляет неизменяемый отсортированный словарь.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)

ImmutableSortedSet

Содержит набор методов инициализации для экземпляров класса ImmutableSortedSet<T>.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)

ImmutableSortedSet<T>.Builder

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

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)

ImmutableSortedSet<T>

Представляет реализацию неизменяемого отсортированного набора.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)

ImmutableStack

Содержит набор методов инициализации для экземпляров класса ImmutableStack<T>.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)

ImmutableStack<T>

Представляет неизменяемый стек.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)

Структуры

ImmutableArray<T>.Enumerator

Перечислитель массива.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)

ImmutableArray<T>

Представляет неизменяемый массив (это означает, что изменить его после создания невозможно).

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)

ImmutableDictionary<TKey,TValue>.Enumerator

Выполняет перечисление содержимого неизменяемого словаря без выделения дополнительной памяти.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)

ImmutableHashSet<T>.Enumerator

Выполняет перечисление содержимого неизменяемого набора хэширования без выделения дополнительной памяти.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)

ImmutableList<T>.Enumerator

Выполняет перечисление содержимого двоичного дерева.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)

ImmutableQueue<T>.Enumerator

Выполняет перечисление содержимого неизменяемой очереди без выделения дополнительной памяти.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)

ImmutableSortedDictionary<TKey,TValue>.Enumerator

Выполняет перечисление содержимого двоичного дерева.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)

ImmutableSortedSet<T>.Enumerator

Выполняет перечисление содержимого двоичного дерева.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)

ImmutableStack<T>.Enumerator

Выполняет перечисление содержимого неизменяемого стека без выделения дополнительной памяти.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)

Интерфейсы

IImmutableDictionary<TKey,TValue>

Представляет неизменяемую коллекцию пар "ключ-значение".

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)

IImmutableList<T>

Представляет список элементов, которые невозможно изменить.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)

IImmutableQueue<T>

Представляет неизменяемую коллекцию объектов, основанную на принципе ФИФО.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)

IImmutableSet<T>

Представляет набор элементов, которые можно изменить только путем создания нового экземпляра набора.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)

IImmutableStack<T>

Представляет неизменяемую коллекцию объектов, основанную на принципе ЛИФО.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)

Комментарии

С ее помощью вы можете:

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

Неизменяемые классы коллекций доступны в составе основных библиотек .NET, однако они не являются частью основной библиотеки классов, распространяемой вместе с платформа .NET Framework. Для приложений платформа .NET Framework 4.6.2 и более поздних версий классы доступны в пакетах NuGet.