System.Collections.Immutable Przestrzeń nazw

Zawiera interfejsy i klasy definiujące kolekcje niezmienne.

Klasy

ImmutableArray

Udostępnia metody tworzenia tablicy, która jest niezmienna; co oznacza, że nie można go zmienić po jego utworzeniu.

Pakiet NuGet: System.Collections.Immutable (informacje o niezmiennych kolekcjach i sposobie instalacji)

ImmutableArray<T>.Builder

Akcesor tablicy z możliwością zapisu, który można przekonwertować na ImmutableArray<T> wystąpienie bez przydzielania dodatkowej pamięci.

Pakiet NuGet: System.Collections.Immutable (informacje o niezmiennych kolekcjach i sposobie instalacji)

ImmutableDictionary

Udostępnia zestaw metod inicjowania dla wystąpień ImmutableDictionary<TKey,TValue> klasy.

Pakiet NuGet: System.Collections.Immutable (informacje o niezmiennych kolekcjach i sposobie instalacji)

ImmutableDictionary<TKey,TValue>.Builder

Reprezentuje mapę skrótu, która wycisza się z niewielkimi alokacjami pamięci lub bez alokacji pamięci, a także umożliwia tworzenie lub kompilowanie na niezmienialnych wystąpieniach mapowania skrótów bardzo wydajnie.

Pakiet NuGet: System.Collections.Immutable (informacje o niezmiennych kolekcjach i sposobie instalacji)

ImmutableDictionary<TKey,TValue>

Reprezentuje niezmienną, nieurządkowaną kolekcję kluczy i wartości.

Pakiet NuGet: System.Collections.Immutable (informacje o niezmiennych kolekcjach i sposobie instalacji)

ImmutableHashSet

Udostępnia zestaw metod inicjowania dla wystąpień ImmutableHashSet<T> klasy.

Pakiet NuGet: System.Collections.Immutable (informacje o niezmiennych kolekcjach i sposobie instalacji)

ImmutableHashSet<T>.Builder

Reprezentuje zestaw skrótów, który wycisza się z niewielkimi alokacjami pamięci lub bez alokacji pamięci i może generować lub kompilować na niezmiennych wystąpieniach zestawu skrótów bardzo wydajnie.

Pakiet NuGet: System.Collections.Immutable (informacje o niezmiennych kolekcjach i sposobie instalacji)

ImmutableHashSet<T>

Reprezentuje niezmienny, nieurządkowany zestaw skrótów.

Pakiet NuGet: System.Collections.Immutable (informacje o niezmiennych kolekcjach i sposobie instalacji)

ImmutableInterlocked

Zawiera mechanizmy wymiany między blokadami dla kolekcji niezmiennych.

Pakiet NuGet: System.Collections.Immutable (informacje o niezmiennych kolekcjach i sposobie instalacji)

ImmutableList

Udostępnia zestaw metod inicjowania dla wystąpień ImmutableList<T> klasy.

Pakiet NuGet: System.Collections.Immutable (informacje o niezmiennych kolekcjach i sposobie instalacji)

ImmutableList<T>.Builder

Reprezentuje listę, która wycisza się z niewielkimi alokacjami pamięci lub bez ich alokacji, co może generować lub kompilować w wystąpieniach listy niezmiennej bardzo wydajnie.

Pakiet NuGet: System.Collections.Immutable (informacje o niezmiennych kolekcjach i sposobie instalacji)

ImmutableList<T>

Reprezentuje listę niezmienną, która jest silnie typizowaną listą obiektów, do których można uzyskać dostęp za pomocą indeksu.

Pakiet NuGet: System.Collections.Immutable (informacje o niezmiennych kolekcjach i sposobie instalacji)

ImmutableQueue

Udostępnia zestaw metod inicjowania dla wystąpień ImmutableQueue<T> klasy.

Pakiet NuGet: System.Collections.Immutable (informacje o niezmiennych kolekcjach i sposobie instalacji)

ImmutableQueue<T>

Reprezentuje niezmienną kolejkę.

Pakiet NuGet: System.Collections.Immutable (informacje o niezmiennych kolekcjach i sposobie instalacji)

ImmutableSortedDictionary

Udostępnia zestaw metod inicjowania dla wystąpień ImmutableSortedDictionary<TKey,TValue> klasy.

Pakiet NuGet: System.Collections.Immutable (informacje o niezmiennych kolekcjach i sposobie instalacji)

ImmutableSortedDictionary<TKey,TValue>.Builder

Reprezentuje posortowany słownik, który wycisza się z niewielkimi alokacjami pamięci lub bez alokacji pamięci, a także umożliwia tworzenie lub kompilowanie w niezmienialnych wystąpieniach słowników posortowanych bardzo wydajnie.

Pakiet NuGet: System.Collections.Immutable (informacje o niezmiennych kolekcjach i sposobie instalacji)

ImmutableSortedDictionary<TKey,TValue>

Reprezentuje niezmienialny słownik posortowany.

Pakiet NuGet: System.Collections.Immutable (informacje o niezmiennych kolekcjach i sposobie instalacji)

ImmutableSortedSet

Udostępnia zestaw metod inicjowania dla wystąpień ImmutableSortedSet<T> klasy.

Pakiet NuGet: System.Collections.Immutable (informacje o niezmiennych kolekcjach i sposobie instalacji)

ImmutableSortedSet<T>.Builder

Reprezentuje posortowany zestaw, który umożliwia zmiany z niewielkimi lub żadnymi alokacjami pamięci, a także efektywnie manipuluje lub kompiluje niezmienne zestawy sortowane.

Pakiet NuGet: System.Collections.Immutable (informacje o niezmiennych kolekcjach i sposobie instalacji)

ImmutableSortedSet<T>

Reprezentuje niezmienną implementację zestawu posortowanego.

Pakiet NuGet: System.Collections.Immutable (informacje o niezmiennych kolekcjach i sposobie instalacji)

ImmutableStack

Udostępnia zestaw metod inicjowania dla wystąpień ImmutableStack<T> klasy.

Pakiet NuGet: System.Collections.Immutable (informacje o niezmiennych kolekcjach i sposobie instalacji)

ImmutableStack<T>

Reprezentuje niezmienny stos.

Pakiet NuGet: System.Collections.Immutable (informacje o niezmiennych kolekcjach i sposobie instalacji)

Struktury

ImmutableArray<T>.Enumerator

Moduł wyliczający tablicy.

Pakiet NuGet: System.Collections.Immutable (informacje o niezmiennych kolekcjach i sposobie instalacji)

ImmutableArray<T>

Reprezentuje tablicę, która jest niezmienna; co oznacza, że nie można go zmienić po jego utworzeniu.

Pakiet NuGet: System.Collections.Immutable (informacje o niezmiennych kolekcjach i sposobie instalacji)

ImmutableDictionary<TKey,TValue>.Enumerator

Wylicza zawartość niezmiennego słownika bez przydzielania pamięci.

Pakiet NuGet: System.Collections.Immutable (informacje o niezmiennych kolekcjach i sposobie instalacji)

ImmutableHashSet<T>.Enumerator

Wylicza zawartość niezmiennego skrótu ustawionego bez przydzielania pamięci.

Pakiet NuGet: System.Collections.Immutable (informacje o niezmiennych kolekcjach i sposobie instalacji)

ImmutableList<T>.Enumerator

Wylicza zawartość drzewa binarnego.

Pakiet NuGet: System.Collections.Immutable (informacje o niezmiennych kolekcjach i sposobie instalacji)

ImmutableQueue<T>.Enumerator

Wylicza zawartość niezmiennej kolejki bez przydzielania pamięci.

Pakiet NuGet: System.Collections.Immutable (informacje o niezmiennych kolekcjach i sposobie instalacji)

ImmutableSortedDictionary<TKey,TValue>.Enumerator

Wylicza zawartość drzewa binarnego.

Pakiet NuGet: System.Collections.Immutable (informacje o niezmiennych kolekcjach i sposobie instalacji)

ImmutableSortedSet<T>.Enumerator

Wylicza zawartość drzewa binarnego.

Pakiet NuGet: System.Collections.Immutable (informacje o niezmiennych kolekcjach i sposobie instalacji)

ImmutableStack<T>.Enumerator

Wylicza zawartość niezmiennego stosu bez przydzielania pamięci.

Pakiet NuGet: System.Collections.Immutable (informacje o niezmiennych kolekcjach i sposobie instalacji)

Interfejsy

IImmutableDictionary<TKey,TValue>

Reprezentuje niezmienną kolekcję par klucz/wartość.

Pakiet NuGet: System.Collections.Immutable (informacje o niezmiennych kolekcjach i sposobie instalacji)

IImmutableList<T>

Reprezentuje listę elementów, których nie można modyfikować.

Pakiet NuGet: System.Collections.Immutable (informacje o niezmiennych kolekcjach i sposobie instalacji)

IImmutableQueue<T>

Reprezentuje niezmienną kolekcję obiektów typu first-in i first-out.

Pakiet NuGet: System.Collections.Immutable (informacje o niezmiennych kolekcjach i sposobie instalacji)

IImmutableSet<T>

Reprezentuje zestaw elementów, które można modyfikować tylko przez utworzenie nowego wystąpienia zestawu.

Pakiet NuGet: System.Collections.Immutable (informacje o niezmiennych kolekcjach i sposobie instalacji)

IImmutableStack<T>

Reprezentuje niezmienną kolekcję last-in-first-out (LIFO).

Pakiet NuGet: System.Collections.Immutable (informacje o niezmiennych kolekcjach i sposobie instalacji)

Uwagi

W przypadku kolekcji niezmiennych można wykonywać następujące czynności:

  • Udostępnianie kolekcji w taki sposób, że jej odbiorca może mieć pewność, że kolekcja nigdy się nie zmienia.
  • Zapewnienie niejawnego bezpieczeństwa wątków w aplikacjach wielowątkowych (brak blokad wymaganych do uzyskiwania dostępu do kolekcji).
  • Postępuj zgodnie z praktykami programowania funkcjonalnego.
  • Zmodyfikuj kolekcję podczas wyliczania, upewniając się, że oryginalna kolekcja nie ulegnie zmianie.

Niezmienne klasy kolekcji są dostępne w ramach podstawowych bibliotek platformy .NET, jednak nie są one częścią podstawowej biblioteki klas dystrybuowanej za pomocą .NET Framework. W przypadku aplikacji .NET Framework 4.6.2 i nowszych klasy są dostępne za pośrednictwem pakietów NuGet.