System.Collections.Immutable Namespace

Пространство имен System.Collections.Immutable содержит интерфейсы и классы, которые определяют неизменяемые коллекции. The System.Collections.Immutable namespace contains interfaces and classes that define immutable collections. Эти классы поддерживаются начиная с .NET Framework 4.5.NET Framework 4.5. These classes are supported starting with .NET Framework 4.5.NET Framework 4.5. Их можно использовать для создания приложений для классических систем, Магазин WindowsWindows Store, Переносимая библиотека классовPortable Class Library и Windows Phone 8. Use them to build apps that target the desktop, Магазин WindowsWindows Store, Переносимая библиотека классовPortable Class Library and Windows Phone 8.

Классы

ImmutableArray

Содержит методы для создания неизменяемого массива (это означает, что изменить его после создания невозможно).Provides methods for creating an array that is immutable; meaning it cannot be changed once it is created.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableArray<T>.Builder

Записываемый метод доступа к массиву, который можно преобразовать в экземпляр ImmutableArray<T> без выделения дополнительной памяти.A writable array accessor that can be converted into an ImmutableArray<T> instance without allocating extra memory.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableDictionary

Содержит набор методов инициализации для экземпляров класса ImmutableDictionary<TKey,TValue>.Provides a set of initialization methods for instances of the ImmutableDictionary<TKey,TValue> class.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableDictionary<TKey,TValue>.Builder

Представляет хэш-карту, для изменения которой не требуется выделение памяти (или выделяется небольшой объем) и с помощью которой можно эффективно создавать или конструировать экземпляры неизменяемых хэш-карт.Represents a hash map that mutates with little or no memory allocations and that can produce or build on immutable hash map instances very efficiently.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableDictionary<TKey,TValue>

Представляет неизменяемую неупорядоченную коллекцию ключей и значений.Represents an immutable, unordered collection of keys and values.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableHashSet

Содержит набор методов инициализации для экземпляров класса ImmutableHashSet<T>.Provides a set of initialization methods for instances of the ImmutableHashSet<T> class.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableHashSet<T>.Builder

Представляет набор хэширования, для изменения которого не требуется выделение памяти (или выделяется небольшой объем) и с помощью которого можно эффективно создавать или конструировать экземпляры неизменяемых наборов хэширования.Represents a hash set that mutates with little or no memory allocations and that can produce or build on immutable hash set instances very efficiently.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableHashSet<T>

Представляет неизменяемый неупорядоченный набор хэширования.Represents an immutable, unordered hash set.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableInterlocked

Содержит механизмы обмена с взаимоблокировкой для неизменяемых коллекций.Contains interlocked exchange mechanisms for immutable collections.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableList

Содержит набор методов инициализации для экземпляров класса ImmutableList<T>.Provides a set of initialization methods for instances of the ImmutableList<T> class.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableList<T>.Builder

Представляет список, для изменения которого не требуется выделение памяти (или выделяется небольшой объем) и с помощью которого можно эффективно создавать или конструировать экземпляры неизменяемых списков.Represents a list that mutates with little or no memory allocations and that can produce or build on immutable list instances very efficiently.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableList<T>

Представляет строго типизированный неизменяемый список объектов, доступных по индексу.Represents an immutable list, which is a strongly typed list of objects that can be accessed by index.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableQueue

Содержит набор методов инициализации для экземпляров класса ImmutableQueue<T>.Provides a set of initialization methods for instances of the ImmutableQueue<T> class.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableQueue<T>

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

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableSortedDictionary

Содержит набор методов инициализации для экземпляров класса ImmutableSortedDictionary<TKey,TValue>.Provides a set of initialization methods for instances of the ImmutableSortedDictionary<TKey,TValue> class.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableSortedDictionary<TKey,TValue>.Builder

Представляет отсортированный словарь, для изменения которого не требуется выделение памяти (или выделяется небольшой объем) и с помощью которого можно эффективно создавать или конструировать экземпляры неизменяемых отсортированных словарей.Represents a sorted dictionary that mutates with little or no memory allocations and that can produce or build on immutable sorted dictionary instances very efficiently.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableSortedDictionary<TKey,TValue>

Представляет неизменяемый отсортированный словарь.Represents an immutable sorted dictionary.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableSortedSet

Содержит набор методов инициализации для экземпляров класса ImmutableSortedSet<T>.Provides a set of initialization methods for instances of the ImmutableSortedSet<T> class.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableSortedSet<T>.Builder

Представляет отсортированный набор, для изменения которого не требуется выделение памяти (или выделяется небольшой объем) и с помощью которого можно эффективно выполнять операции с неизменяемыми отсортированными наборами или создавать их.Represents a sorted set that enables changes with little or no memory allocations, and efficiently manipulates or builds immutable sorted sets.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableSortedSet<T>

Представляет реализацию неизменяемого отсортированного набора.Represents an immutable sorted set implementation.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableStack

Содержит набор методов инициализации для экземпляров класса ImmutableStack<T>.Provides a set of initialization methods for instances of the ImmutableStack<T> class.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableStack<T>

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

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

Структуры

ImmutableArray<T>.Enumerator

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

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableArray<T>

Представляет неизменяемый массив (это означает, что изменить его после создания невозможно).Represents an array that is immutable; meaning it cannot be changed once it is created.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableDictionary<TKey,TValue>.Enumerator

Выполняет перечисление содержимого неизменяемого словаря без выделения дополнительной памяти.Enumerates the contents of the immutable dictionary without allocating any memory.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableHashSet<T>.Enumerator

Выполняет перечисление содержимого неизменяемого набора хэширования без выделения дополнительной памяти.Enumerates the contents of the immutable hash set without allocating any memory.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableList<T>.Enumerator

Выполняет перечисление содержимого двоичного дерева.Enumerates the contents of a binary tree.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableQueue<T>.Enumerator

Выполняет перечисление содержимого неизменяемой очереди без выделения дополнительной памяти.Enumerates the contents of an immutable queue without allocating any memory.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableSortedDictionary<TKey,TValue>.Enumerator

Выполняет перечисление содержимого двоичного дерева.Enumerates the contents of a binary tree.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableSortedSet<T>.Enumerator

Выполняет перечисление содержимого двоичного дерева.Enumerates the contents of a binary tree.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableStack<T>.Enumerator

Выполняет перечисление содержимого неизменяемого стека без выделения дополнительной памяти.Enumerates the contents of an immutable stack without allocating any memory.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

Интерфейсы

IImmutableDictionary<TKey,TValue>

Представляет неизменяемую коллекцию пар "ключ-значение".Represents an immutable collection of key/value pairs.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

IImmutableList<T>

Представляет список элементов, которые невозможно изменить.Represents a list of elements that cannot be modified.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

IImmutableQueue<T>

Представляет неизменяемую коллекцию объектов, основанную на принципе ФИФО.Represents an immutable first-in, first-out collection of objects.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

IImmutableSet<T>

Представляет набор элементов, которые можно изменить только путем создания нового экземпляра набора.Represents a set of elements that can only be modified by creating a new instance of the set.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

IImmutableStack<T>

Представляет неизменяемую коллекцию объектов, основанную на принципе ЛИФО.Represents an immutable last-in-first-out (LIFO) collection.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

Комментарии

С ее помощью вы можете:With immutable collections, you can:

  • Совместно используют одну коллекцию способом, который потребитель можно быть уверенным, что коллекции никогда не меняется.Share a collection in a way that its consumer can be assured that the collection never changes.

  • обеспечивать безопасность потоков в многопотоковых приложениях (блокировки для доступа к коллекциям не требуются);Provide implicit thread safety in multi-threaded applications (no locks required to access collections).

  • следовать рекомендациям функционального программирования;Follow functional programming practices.

  • изменять коллекцию во время перечисления, не изменяя исходную коллекцию.Modify a collection during enumeration, while ensuring that the original collection does not change.

Неизменяемые классы коллекций доступны с помощью .NET Core, однако они не являются частью основной библиотеки классов, распространяемой с .NET Framework.The immutable collection classes are available with .NET Core, however they're not part of the core class library distributed with the .NET Framework. Они доступны, начиная с .NET Framework 4.5 с помощью NuGet.They're available starting with the .NET Framework 4.5 via NuGet.

Установка неизменяемых коллекций с помощью NuGet:To install the immutable collections via NuGet:

  1. Откройте проект в Visual Studio и выберите управление пакетами NuGet из проекта меню.Open your project in Visual Studio and choose Manage NuGet Packages from the Project menu.

  2. При необходимости выберите включить предварительные выпуски флажок.Optionally, select the Include prerelease checkbox. Этот параметр позволит вам получить доступ к новым предварительным версиям неизменяемых классов по мере их доступности.This option will give you access to new prerelease versions of the immutable classes, as they become available.

  3. Используйте поиска для нахождения нужного System.Collections.Immutable пакета.Use the Search box to locate the System.Collections.Immutable package.

  4. В левой области выберите System.Collections.Immutable пакета.In the left pane, select the System.Collections.Immutable package. В области справа выберите нужную версию и нажмите кнопку Install.In the right pane, select the desired version and then choose Install.

Шаги установки, описанные выше, для Visual Studio 2015.The installation steps described above are for Visual Studio 2015. Для других версий Visual Studio действия могут несколько отличаться из-за различий в пользовательском интерфейсе (UI).For other versions of Visual Studio, the steps might be slightly different because of differences in the user interface (UI).