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. それらを使用して、デスクトップ、Windows ストアWindows Storeポータブル クラス ライブラリPortable Class Library、および Windows Phone 8 を対象とするアプリをビルドします。 Use them to build apps that target the desktop, Windows ストアWindows 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>

変更できない後入れ先出し (LIFO) コレクションを表します。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 Framework で配布コア クラス ライブラリの一部とは違う、.NET Core で使用できます。The immutable collection classes are available with .NET Core, however they're not part of the core class library distributed with the .NET Framework. NuGet を使用して .NET Framework 4.5 以降で利用可能になります。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. 右側のウィンドウで、必要なバージョンを選択し、インストールを選択します。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).