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 库的一部分提供,但它们不是使用 .NET Framework 分发的核心类库的一部分。 对于 .NET Framework 4.6.2 及更高版本应用,类可通过 NuGet 包获得。