System.Collections.Immutable 命名空间

包含用于定义不可变集合的接口和类。

ImmutableArray

提供用于创建不可变数组的方法;这意味着,该数组在创建后不可更改。

NuGet package: System.Collections.Immutable关于不可变集合和安装方法

ImmutableArray<T>.Builder

无需分配额外的内存就能转换为 ImmutableArray<T> 实例的可写数组访问器。

NuGet package: System.Collections.Immutable关于不可变集合和安装方法

ImmutableDictionary

针对 ImmutableDictionary<TKey,TValue> 类的实例提供一组初始化方法。

NuGet package: System.Collections.Immutable关于不可变集合和安装方法

ImmutableDictionary<TKey,TValue>.Builder

表示一个只需少量或者无需内存分配就能转变,并且可以有效生成不可变哈希映射实例或者构建于此类实例之上的哈希映射。

NuGet package: System.Collections.Immutable关于不可变集合和安装方法

ImmutableDictionary<TKey,TValue>

表示键和值的不可变未排序集合。

NuGet package: System.Collections.Immutable关于不可变集合和安装方法

ImmutableHashSet

针对 ImmutableHashSet<T> 类的实例提供一组初始化方法。

NuGet package: System.Collections.Immutable关于不可变集合和安装方法

ImmutableHashSet<T>.Builder

表示一个只需少量或者无需内存分配就能转变,并且可以有效生成不可变哈希集实例或者构建于此类实例之上的哈希集。

NuGet package: System.Collections.Immutable关于不可变集合和安装方法

ImmutableHashSet<T>

表示不可变未排序哈希集。

NuGet package: System.Collections.Immutable关于不可变集合和安装方法

ImmutableInterlocked

包含不可变集合的联锁交换机制。

NuGet package: System.Collections.Immutable关于不可变集合和安装方法

ImmutableList

针对 ImmutableList<T> 类的实例提供一组初始化方法。

NuGet package: System.Collections.Immutable关于不可变集合和安装方法

ImmutableList<T>.Builder

表示一个只需少量或者无需内存分配就能转变,并且可以有效生成不可变列表实例或者构建于此类实例之上的列表。

NuGet package: System.Collections.Immutable关于不可变集合和安装方法

ImmutableList<T>

表示一个不可变列表,该列表是可按索引访问的对象的强类型列表。

NuGet package: System.Collections.Immutable关于不可变集合和安装方法

ImmutableQueue

针对 ImmutableQueue<T> 类的实例提供一组初始化方法。

NuGet package: System.Collections.Immutable关于不可变集合和安装方法

ImmutableQueue<T>

表示不可变队列。

NuGet package: System.Collections.Immutable关于不可变集合和安装方法

ImmutableSortedDictionary

针对 ImmutableSortedDictionary<TKey,TValue> 类的实例提供一组初始化方法。

NuGet package: System.Collections.Immutable关于不可变集合和安装方法

ImmutableSortedDictionary<TKey,TValue>.Builder

表示一个只需少量或者无需内存分配就能转变,并且可以有效生成不可变排序字典实例或者构建于此类实例之上的排序字典。

NuGet package: System.Collections.Immutable关于不可变集合和安装方法

ImmutableSortedDictionary<TKey,TValue>

表示一个不可变排序字典。

NuGet package: System.Collections.Immutable关于不可变集合和安装方法

ImmutableSortedSet

针对 ImmutableSortedSet<T> 类的实例提供一组初始化方法。

NuGet package: System.Collections.Immutable关于不可变集合和安装方法

ImmutableSortedSet<T>.Builder

表示一个只需少量或者无需内存分配就能启用更改,并且可以有效地操作或生成不可变排序集的排序集。

NuGet package: System.Collections.Immutable关于不可变集合和安装方法

ImmutableSortedSet<T>

表示不可变的排序集实现。

NuGet package: System.Collections.Immutable关于不可变集合和安装方法

ImmutableStack

针对 ImmutableStack<T> 类的实例提供一组初始化方法。

NuGet package: System.Collections.Immutable关于不可变集合和安装方法

ImmutableStack<T>

表示不可变堆栈。

NuGet package: System.Collections.Immutable关于不可变集合和安装方法

结构

ImmutableArray<T>.Enumerator

数组枚举器。

NuGet package: System.Collections.Immutable关于不可变集合和安装方法

ImmutableArray<T>

表示不可变的数组;这意味着,该数组在创建后不可更改。

NuGet package: System.Collections.Immutable关于不可变集合和安装方法

ImmutableDictionary<TKey,TValue>.Enumerator

枚举不可变字典的内容,而无需分配任何内存。

NuGet package: System.Collections.Immutable关于不可变集合和安装方法

ImmutableHashSet<T>.Enumerator

枚举不可变哈希集的内容,而无需分配任何内存。

NuGet package: System.Collections.Immutable关于不可变集合和安装方法

ImmutableList<T>.Enumerator

枚举二进制树的内容。

NuGet package: System.Collections.Immutable关于不可变集合和安装方法

ImmutableQueue<T>.Enumerator

枚举不可变队列的内容,而无需分配任何内存。

NuGet package: System.Collections.Immutable关于不可变集合和安装方法

ImmutableSortedDictionary<TKey,TValue>.Enumerator

枚举二进制树的内容。

NuGet package: System.Collections.Immutable关于不可变集合和安装方法

ImmutableSortedSet<T>.Enumerator

枚举二进制树的内容。

NuGet package: System.Collections.Immutable关于不可变集合和安装方法

ImmutableStack<T>.Enumerator

枚举不可变堆栈的内容,而无需分配任何内存。

NuGet package: System.Collections.Immutable关于不可变集合和安装方法

接口

IImmutableDictionary<TKey,TValue>

表示键/值对的不可变集合。

NuGet package: System.Collections.Immutable关于不可变集合和安装方法

IImmutableList<T>

表示无法修改的元素的列表。

NuGet package: System.Collections.Immutable关于不可变集合和安装方法

IImmutableQueue<T>

表示对象的不可变先进先出集合。

NuGet package: System.Collections.Immutable关于不可变集合和安装方法

IImmutableSet<T>

表示一个只能通过创建集的新实例进行修改的元素集。

NuGet package: System.Collections.Immutable关于不可变集合和安装方法

IImmutableStack<T>

表示一个不可变后进先出 (LIFO) 集合。

NuGet package: System.Collections.Immutable关于不可变集合和安装方法

注解

使用不可变集合,你可以:

  • 共享集合,使其使用者可以确保集合永远不会发生更改。

  • 提供多线程应用程序中的隐式线程安全(无需锁来访问集合)。

  • 遵循函数编程做法。

  • 在枚举过程中修改集合,同时确保该原始集合不会更改。

.NET Core 和 .NET 5 + 中均提供不可变的集合类,但它们不是随 .NET Framework 一起分发的核心类库的一部分。 从 .NET Framework 4.5 开始,可以通过 NuGet 开始使用。

通过 NuGet 安装不可变集合:

  1. 在 Visual Studio 中打开项目,然后从 " 项目 " 菜单中选择 " 管理 NuGet 包 "。

  2. 还可以选择 " 包括预发行 版" 复选框。

    此选项可让你访问不可变类的新预发布版本,因为这些版本可用。

  3. 使用 " 搜索 " 框找到 ""

  4. 在左窗格中,选择 " system.web " 包。 在右侧窗格中,选择所需的版本,然后选择 "安装"。

上述安装步骤适用于 Visual Studio 2015。 对于其他版本的 Visual Studio,这些步骤可能稍有不同,因为用户界面 (UI) 不同。