ConcurrentDictionary<TKey,TValue> Klasa

Definicja

Reprezentuje bezpieczną wątkowo kolekcję par klucz/wartość, do których można uzyskać dostęp jednocześnie przez wiele wątków.Represents a thread-safe collection of key/value pairs that can be accessed by multiple threads concurrently.

generic <typename TKey, typename TValue>
public ref class ConcurrentDictionary : System::Collections::Generic::ICollection<System::Collections::Generic::KeyValuePair<TKey, TValue>>, System::Collections::Generic::IDictionary<TKey, TValue>, System::Collections::Generic::IEnumerable<System::Collections::Generic::KeyValuePair<TKey, TValue>>, System::Collections::Generic::IReadOnlyCollection<System::Collections::Generic::KeyValuePair<TKey, TValue>>, System::Collections::Generic::IReadOnlyDictionary<TKey, TValue>, System::Collections::IDictionary
[System.Runtime.InteropServices.ComVisible(false)]
[System.Serializable]
public class ConcurrentDictionary<TKey,TValue> : System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<TKey,TValue>>, System.Collections.Generic.IDictionary<TKey,TValue>, System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>, System.Collections.Generic.IReadOnlyCollection<System.Collections.Generic.KeyValuePair<TKey,TValue>>, System.Collections.Generic.IReadOnlyDictionary<TKey,TValue>, System.Collections.IDictionary
type ConcurrentDictionary<'Key, 'Value> = class
    interface IDictionary<'Key, 'Value>
    interface IDictionary
    interface IReadOnlyDictionary<'Key, 'Value>
    interface ICollection<KeyValuePair<'Key, 'Value>>
    interface seq<KeyValuePair<'Key, 'Value>>
    interface IEnumerable
    interface ICollection
    interface IReadOnlyCollection<KeyValuePair<'Key, 'Value>>
Public Class ConcurrentDictionary(Of TKey, TValue)
Implements ICollection(Of KeyValuePair(Of TKey, TValue)), IDictionary, IDictionary(Of TKey, TValue), IEnumerable(Of KeyValuePair(Of TKey, TValue)), IReadOnlyCollection(Of KeyValuePair(Of TKey, TValue)), IReadOnlyDictionary(Of TKey, TValue)

Parametry typu

TKey

Typ kluczy w słowniku.The type of the keys in the dictionary.

TValue

Typ wartości w słowniku.The type of the values in the dictionary.

Dziedziczenie
ConcurrentDictionary<TKey,TValue>
Atrybuty
Implementuje

Przykłady

Poniższy przykład przedstawia sposób konstruowania obiektu ConcurrentDictionary<TKey,TValue>.The following example shows how to construct a ConcurrentDictionary<TKey,TValue> object.


class CD_Ctor
{
        // Demonstrates:
        //      ConcurrentDictionary<TKey, TValue> ctor(concurrencyLevel, initialCapacity)
        //      ConcurrentDictionary<TKey, TValue>[TKey]
        static void Main()
        {
            // We know how many items we want to insert into the ConcurrentDictionary.
            // So set the initial capacity to some prime number above that, to ensure that
            // the ConcurrentDictionary does not need to be resized while initializing it.
            int NUMITEMS = 64;
            int initialCapacity = 101;

            // The higher the concurrencyLevel, the higher the theoretical number of operations
            // that could be performed concurrently on the ConcurrentDictionary.  However, global
            // operations like resizing the dictionary take longer as the concurrencyLevel rises. 
            // For the purposes of this example, we'll compromise at numCores * 2.
            int numProcs = Environment.ProcessorCount;
            int concurrencyLevel = numProcs * 2;

            // Construct the dictionary with the desired concurrencyLevel and initialCapacity
            ConcurrentDictionary<int, int> cd = new ConcurrentDictionary<int, int>(concurrencyLevel, initialCapacity);

            // Initialize the dictionary
            for (int i = 0; i < NUMITEMS; i++) cd[i] = i * i;

            Console.WriteLine("The square of 23 is {0} (should be {1})", cd[23], 23 * 23);
        }
}
Imports System.Collections.Concurrent
Imports System.Threading.Tasks

Class CD_Ctor
    ' Demonstrates:
    ' ConcurrentDictionary<TKey, TValue> ctor(concurrencyLevel, initialCapacity)
    ' ConcurrentDictionary<TKey, TValue>[TKey]
    Shared Sub Main()
        ' We know how many items we want to insert into the ConcurrentDictionary.
        ' So set the initial capacity to some prime number above that, to ensure that
        ' the ConcurrentDictionary does not need to be resized while initializing it.
        Dim NUMITEMS As Integer = 64
        Dim initialCapacity As Integer = 101

        ' The higher the concurrencyLevel, the higher the theoretical number of operations
        ' that could be performed concurrently on the ConcurrentDictionary. However, global
        ' operations like resizing the dictionary take longer as the concurrencyLevel rises. 
        ' For the purposes of this example, we'll compromise at numCores * 2.
        Dim numProcs As Integer = Environment.ProcessorCount
        Dim concurrencyLevel As Integer = numProcs * 2

        ' Construct the dictionary with the desired concurrencyLevel and initialCapacity
        Dim cd As New ConcurrentDictionary(Of Integer, Integer)(concurrencyLevel, initialCapacity)

        ' Initialize the dictionary
        For i As Integer = 0 To NUMITEMS - 1
            cd(i) = i * i
        Next

        Console.WriteLine("The square of 23 is {0} (should be {1})", cd(23), 23 * 23)
    End Sub
End Class

Uwagi

W przypadku bardzo dużych ConcurrentDictionary<TKey,TValue> obiektów można zwiększyć maksymalny rozmiar tablicy do 2 gigabajtów (GB) w systemie 64-bitowym, ustawiając element konfiguracji <gcAllowVeryLargeObjects> na true w środowisku wykonawczym.For very large ConcurrentDictionary<TKey,TValue> objects, you can increase the maximum array size to 2 gigabytes (GB) on a 64-bit system by setting the <gcAllowVeryLargeObjects> configuration element to true in the run-time environment.

Uwaga

ConcurrentDictionary<TKey,TValue> implementuje interfejsy IReadOnlyCollection<T> i IReadOnlyDictionary<TKey,TValue>, zaczynając od .NET Framework 4.6.NET Framework 4.6; w poprzednich wersjach .NET Framework Klasa ConcurrentDictionary<TKey,TValue> nie wdrożyła tych interfejsów.ConcurrentDictionary<TKey,TValue> implements the IReadOnlyCollection<T> and IReadOnlyDictionary<TKey,TValue> interfaces starting with the .NET Framework 4.6.NET Framework 4.6; in previous versions of the .NET Framework, the ConcurrentDictionary<TKey,TValue> class did not implement these interfaces.

Podobnie jak w przypadku klasy System.Collections.Generic.Dictionary<TKey,TValue>, ConcurrentDictionary<TKey,TValue> implementuje interfejs IDictionary<TKey,TValue>.Like the System.Collections.Generic.Dictionary<TKey,TValue> class, ConcurrentDictionary<TKey,TValue> implements the IDictionary<TKey,TValue> interface. Ponadto ConcurrentDictionary<TKey,TValue> udostępnia kilka metod dodawania lub aktualizowania par klucz/wartość w słowniku, zgodnie z opisem w poniższej tabeli.In addition, ConcurrentDictionary<TKey,TValue> provides several methods for adding or updating key/value pairs in the dictionary, as described in the following table.

Wymagana czynnośćTo do this Użyj tej metodyUse this method Uwagi dotyczące użyciaUsage notes
Dodaj nowy klucz do słownika, jeśli jeszcze nie istnieje w słownikuAdd a new key to the dictionary, if it doesn't already exist in the dictionary TryAdd Ta metoda dodaje określoną parę klucz/wartość, jeśli klucz nie istnieje w słowniku.This method adds the specified key/value pair, if the key doesn't currently exist in the dictionary. Metoda zwraca true lub false w zależności od tego, czy nowa para została dodana.The method returns true or false depending on whether the new pair was added.
Zaktualizuj wartość istniejącego klucza w słowniku, jeśli ten klucz ma określoną wartośćUpdate the value for an existing key in the dictionary, if that key has a specific value TryUpdate Ta metoda sprawdza, czy klucz ma określoną wartość, a jeśli tak, aktualizuje klucz za pomocą nowej wartości.This method checks whether the key has a specified value, and if it does, updates the key with a new value. Jest podobna do metody CompareExchange, z tą różnicą, że jest używana dla elementów słownika.It's similar to the CompareExchange method, except that it's used for dictionary elements.
Przechowuj bezwarunkowo parę klucz/wartość w słowniku i Zastąp wartość klucza, który już istnieje.Store a key/value pair in the dictionary unconditionally, and overwrite the value of a key that already exists Metoda ustawiająca indeksatora: dictionary[key] = newValueThe indexer's setter: dictionary[key] = newValue
Dodaj parę klucz/wartość do słownika lub jeśli klucz już istnieje, zaktualizuj wartość klucza na podstawie istniejącej wartości klucza.Add a key/value pair to the dictionary, or if the key already exists, update the value for the key based on the key's existing value AddOrUpdate(TKey, Func<TKey,TValue>, Func<TKey,TValue,TValue>)

lub-or-

AddOrUpdate(TKey, TValue, Func<TKey,TValue,TValue>)
AddOrUpdate(TKey, Func<TKey,TValue>, Func<TKey,TValue,TValue>) akceptuje klucz i dwóch delegatów.AddOrUpdate(TKey, Func<TKey,TValue>, Func<TKey,TValue,TValue>) accepts the key and two delegates. Używa pierwszego delegata, jeśli klucz nie istnieje w słowniku; akceptuje klucz i zwraca wartość, która powinna zostać dodana do klucza.It uses the first delegate if the key doesn't exist in the dictionary; it accepts the key and returns the value that should be added for the key. Używa drugiego delegata, jeśli klucz istnieje; akceptuje klucz i jego bieżącą wartość i zwraca nową wartość, która powinna zostać ustawiona dla klucza.It uses the second delegate if the key does exist; it accepts the key and its current value, and it returns the new value that should be set for the key.

AddOrUpdate(TKey, TValue, Func<TKey,TValue,TValue>) akceptuje klucz, wartość do dodania oraz delegata aktualizacji.AddOrUpdate(TKey, TValue, Func<TKey,TValue,TValue>) accepts the key, a value to add, and the update delegate. Jest to takie samo jak poprzednie Przeciążenie, z tą różnicą, że nie używa delegata do dodawania klucza.This is the same as the previous overload, except that it doesn't use a delegate to add a key.
Pobierz wartość klucza w słowniku, dodając wartość do słownika i zwracając ją, jeśli klucz nie istniejeGet the value for a key in the dictionary, adding the value to the dictionary and returning it if the key doesn't exist GetOrAdd(TKey, TValue)

lub-or-

GetOrAdd(TKey, Func<TKey,TValue>)
Te przeciążenia zapewniają opcję inicjalizacji z opóźnieniem dla pary klucz/wartość w słowniku, dodając wartość tylko wtedy, gdy nie jest ona dostępna.These overloads provide lazy initialization for a key/value pair in the dictionary, adding the value only if it's not there.

GetOrAdd(TKey, TValue) Pobiera wartość, która ma zostać dodana, jeśli klucz nie istnieje.GetOrAdd(TKey, TValue) takes the value to be added if the key doesn't exist.

GetOrAdd(TKey, Func<TKey,TValue>) pobiera delegata, który będzie generował wartość, jeśli klucz nie istnieje.GetOrAdd(TKey, Func<TKey,TValue>) takes a delegate that will generate the value if the key doesn't exist.

Wszystkie te operacje są niepodzielne i są bezpieczne dla wątków w odniesieniu do wszystkich innych operacji na klasie ConcurrentDictionary<TKey,TValue>.All these operations are atomic and are thread-safe with regards to all other operations on the ConcurrentDictionary<TKey,TValue> class. Jedyne wyjątki to metody, które akceptują delegata, czyli AddOrUpdate i GetOrAdd.The only exceptions are the methods that accept a delegate, that is, AddOrUpdate and GetOrAdd. W przypadku modyfikacji i zapisu do słownika ConcurrentDictionary<TKey,TValue> używa precyzyjnego blokowania w celu zapewnienia bezpieczeństwa wątków.For modifications and write operations to the dictionary, ConcurrentDictionary<TKey,TValue> uses fine-grained locking to ensure thread safety. (Operacje odczytu w słowniku są wykonywane w sposób niezależny od blokady). Jednakże delegatów tych metod są wywoływane poza blokadami, aby uniknąć problemów, które mogą wystąpić podczas wykonywania nieznanego kodu w ramach blokady.(Read operations on the dictionary are performed in a lock-free manner.) However, delegates for these methods are called outside the locks to avoid the problems that can arise from executing unknown code under a lock. W związku z tym kod wykonywany przez tych delegatów nie podlega niepodzielności operacji.Therefore, the code executed by these delegates is not subject to the atomicity of the operation.

Konstruktory

ConcurrentDictionary<TKey,TValue>()

Inicjuje nowe wystąpienie klasy ConcurrentDictionary<TKey,TValue>, która jest pusta, ma domyślny poziom współbieżności, ma domyślną pojemność początkową i używa domyślnej metody porównującej dla typu klucza.Initializes a new instance of the ConcurrentDictionary<TKey,TValue> class that is empty, has the default concurrency level, has the default initial capacity, and uses the default comparer for the key type.

ConcurrentDictionary<TKey,TValue>(IEnumerable<KeyValuePair<TKey,TValue>>)

Inicjuje nowe wystąpienie klasy ConcurrentDictionary<TKey,TValue>, która zawiera elementy skopiowane z określonego IEnumerable<T>, ma domyślny poziom współbieżności, ma domyślną pojemność początkową i używa domyślnej metody porównującej dla typu klucza.Initializes a new instance of the ConcurrentDictionary<TKey,TValue> class that contains elements copied from the specified IEnumerable<T>, has the default concurrency level, has the default initial capacity, and uses the default comparer for the key type.

ConcurrentDictionary<TKey,TValue>(IEnumerable<KeyValuePair<TKey,TValue>>, IEqualityComparer<TKey>)

Inicjuje nowe wystąpienie klasy ConcurrentDictionary<TKey,TValue>, która zawiera elementy skopiowane z określonego IEnumerable ma domyślny poziom współbieżności, ma domyślną pojemność początkową i używa określonego IEqualityComparer<T>.Initializes a new instance of the ConcurrentDictionary<TKey,TValue> class that contains elements copied from the specified IEnumerable has the default concurrency level, has the default initial capacity, and uses the specified IEqualityComparer<T>.

ConcurrentDictionary<TKey,TValue>(IEqualityComparer<TKey>)

Inicjuje nowe wystąpienie klasy ConcurrentDictionary<TKey,TValue>, która jest pusta, ma domyślny poziom współbieżności i pojemność oraz używa określonego IEqualityComparer<T>.Initializes a new instance of the ConcurrentDictionary<TKey,TValue> class that is empty, has the default concurrency level and capacity, and uses the specified IEqualityComparer<T>.

ConcurrentDictionary<TKey,TValue>(Int32, IEnumerable<KeyValuePair<TKey,TValue>>, IEqualityComparer<TKey>)

Inicjuje nowe wystąpienie klasy ConcurrentDictionary<TKey,TValue>, które zawiera elementy skopiowane z określonego IEnumerable, i używa określonego IEqualityComparer<T>.Initializes a new instance of the ConcurrentDictionary<TKey,TValue> class that contains elements copied from the specified IEnumerable, and uses the specified IEqualityComparer<T>.

ConcurrentDictionary<TKey,TValue>(Int32, Int32)

Inicjuje nowe wystąpienie klasy ConcurrentDictionary<TKey,TValue>, która jest pusta, ma określony poziom współbieżności i pojemność, i używa domyślnej metody porównującej dla typu klucza.Initializes a new instance of the ConcurrentDictionary<TKey,TValue> class that is empty, has the specified concurrency level and capacity, and uses the default comparer for the key type.

ConcurrentDictionary<TKey,TValue>(Int32, Int32, IEqualityComparer<TKey>)

Inicjuje nowe wystąpienie klasy ConcurrentDictionary<TKey,TValue>, która jest pusta, ma określony poziom współbieżności, ma określoną pojemność początkową i używa określonego IEqualityComparer<T>.Initializes a new instance of the ConcurrentDictionary<TKey,TValue> class that is empty, has the specified concurrency level, has the specified initial capacity, and uses the specified IEqualityComparer<T>.

Właściwości

Count

Pobiera liczbę par klucz/wartość zawartych w ConcurrentDictionary<TKey,TValue>.Gets the number of key/value pairs contained in the ConcurrentDictionary<TKey,TValue>.

IsEmpty

Pobiera wartość wskazującą, czy ConcurrentDictionary<TKey,TValue> jest pusta.Gets a value that indicates whether the ConcurrentDictionary<TKey,TValue> is empty.

Item[TKey]

Pobiera lub ustawia wartość skojarzoną z określonym kluczem.Gets or sets the value associated with the specified key.

Keys

Pobiera kolekcję zawierającą klucze w Dictionary<TKey,TValue>.Gets a collection containing the keys in the Dictionary<TKey,TValue>.

Values

Pobiera kolekcję zawierającą wartości z Dictionary<TKey,TValue>.Gets a collection that contains the values in the Dictionary<TKey,TValue>.

Metody

AddOrUpdate(TKey, Func<TKey,TValue>, Func<TKey,TValue,TValue>)

Program używa określonych funkcji do dodania pary klucz/wartość do ConcurrentDictionary<TKey,TValue>, jeśli klucz jeszcze nie istnieje, lub aby zaktualizować parę klucz/wartość w ConcurrentDictionary<TKey,TValue>, jeśli klucz już istnieje.Uses the specified functions to add a key/value pair to the ConcurrentDictionary<TKey,TValue> if the key does not already exist, or to update a key/value pair in the ConcurrentDictionary<TKey,TValue> if the key already exists.

AddOrUpdate(TKey, TValue, Func<TKey,TValue,TValue>)

Dodaje parę klucz/wartość do ConcurrentDictionary<TKey,TValue>, jeśli klucz jeszcze nie istnieje, lub aktualizuje parę klucz/wartość w ConcurrentDictionary<TKey,TValue> przy użyciu określonej funkcji, jeśli klucz już istnieje.Adds a key/value pair to the ConcurrentDictionary<TKey,TValue> if the key does not already exist, or updates a key/value pair in the ConcurrentDictionary<TKey,TValue> by using the specified function if the key already exists.

AddOrUpdate<TArg>(TKey, Func<TKey,TArg,TValue>, Func<TKey,TValue,TArg,TValue>, TArg)

Używa określonych funkcji i argumentów do dodania pary klucz/wartość do ConcurrentDictionary<TKey,TValue>, jeśli klucz jeszcze nie istnieje, lub aby zaktualizować parę klucz/wartość w ConcurrentDictionary<TKey,TValue>, jeśli klucz już istnieje.Uses the specified functions and argument to add a key/value pair to the ConcurrentDictionary<TKey,TValue> if the key does not already exist, or to update a key/value pair in the ConcurrentDictionary<TKey,TValue> if the key already exists.

Clear()

Usuwa wszystkie klucze i wartości z ConcurrentDictionary<TKey,TValue>.Removes all keys and values from the ConcurrentDictionary<TKey,TValue>.

ContainsKey(TKey)

Określa, czy ConcurrentDictionary<TKey,TValue> zawiera określony klucz.Determines whether the ConcurrentDictionary<TKey,TValue> contains the specified key.

Equals(Object)

Określa, czy określony obiekt jest równy bieżącemu obiektowi.Determines whether the specified object is equal to the current object.

(Odziedziczone po Object)
GetEnumerator()

Zwraca moduł wyliczający, który wykonuje iterację przez ConcurrentDictionary<TKey,TValue>.Returns an enumerator that iterates through the ConcurrentDictionary<TKey,TValue>.

GetHashCode()

Służy jako domyślna funkcja skrótu.Serves as the default hash function.

(Odziedziczone po Object)
GetOrAdd(TKey, Func<TKey,TValue>)

Dodaje parę klucz/wartość do ConcurrentDictionary<TKey,TValue> przy użyciu określonej funkcji, jeśli klucz jeszcze nie istnieje.Adds a key/value pair to the ConcurrentDictionary<TKey,TValue> by using the specified function if the key does not already exist. Zwraca nową wartość lub istniejącą wartość, jeśli klucz istnieje.Returns the new value, or the existing value if the key exists.

GetOrAdd(TKey, TValue)

Dodaje parę klucz/wartość do ConcurrentDictionary<TKey,TValue>, jeśli klucz jeszcze nie istnieje.Adds a key/value pair to the ConcurrentDictionary<TKey,TValue> if the key does not already exist. Zwraca nową wartość lub istniejącą wartość, jeśli klucz istnieje.Returns the new value, or the existing value if the key exists.

GetOrAdd<TArg>(TKey, Func<TKey,TArg,TValue>, TArg)

Dodaje parę klucz/wartość do ConcurrentDictionary<TKey,TValue> przy użyciu określonej funkcji i argumentu, jeśli klucz jeszcze nie istnieje, lub zwraca istniejącą wartość, jeśli klucz istnieje.Adds a key/value pair to the ConcurrentDictionary<TKey,TValue> by using the specified function and an argument if the key does not already exist, or returns the existing value if the key exists.

GetType()

Pobiera Type bieżącego wystąpienia.Gets the Type of the current instance.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy skróconą kopię bieżącego Object.Creates a shallow copy of the current Object.

(Odziedziczone po Object)
ToArray()

Kopiuje pary klucz-wartość przechowywane w ConcurrentDictionary<TKey,TValue> do nowej tablicy.Copies the key and value pairs stored in the ConcurrentDictionary<TKey,TValue> to a new array.

ToString()

Zwraca ciąg, który reprezentuje bieżący obiekt.Returns a string that represents the current object.

(Odziedziczone po Object)
TryAdd(TKey, TValue)

Próbuje dodać określony klucz i wartość do ConcurrentDictionary<TKey,TValue>.Attempts to add the specified key and value to the ConcurrentDictionary<TKey,TValue>.

TryGetValue(TKey, TValue)

Próbuje pobrać wartość skojarzoną z określonym kluczem z ConcurrentDictionary<TKey,TValue>.Attempts to get the value associated with the specified key from the ConcurrentDictionary<TKey,TValue>.

TryRemove(TKey, TValue)

Próbuje usunąć i zwrócić wartość, która ma określony klucz z ConcurrentDictionary<TKey,TValue>.Attempts to remove and return the value that has the specified key from the ConcurrentDictionary<TKey,TValue>.

TryUpdate(TKey, TValue, TValue)

Aktualizuje wartość skojarzoną z key, aby newValue, jeśli istniejąca wartość z key jest równa comparisonValue.Updates the value associated with key to newValue if the existing value with key is equal to comparisonValue.

Jawne implementacje interfejsu

ICollection.CopyTo(Array, Int32)

Kopiuje elementy ICollection do tablicy, rozpoczynając od określonego indeksu tablicy.Copies the elements of the ICollection to an array, starting at the specified array index.

ICollection.IsSynchronized

Pobiera wartość wskazującą, czy dostęp do ICollection jest synchronizowany z SyncRoot.Gets a value that indicates whether access to the ICollection is synchronized with the SyncRoot.

ICollection.SyncRoot

Pobiera obiekt, który może służyć do synchronizowania dostępu do ICollection.Gets an object that can be used to synchronize access to the ICollection. Ta właściwość nie jest obsługiwana.This property is not supported.

ICollection<KeyValuePair<TKey,TValue>>.Add(KeyValuePair<TKey,TValue>)

Dodaje element do kolekcji.Adds an item to the collection.

ICollection<KeyValuePair<TKey,TValue>>.Contains(KeyValuePair<TKey,TValue>)

Pobiera czy ICollection<T> zawiera element z określonym kluczem.Gets whether the ICollection<T> contains an element with the specified key.

ICollection<KeyValuePair<TKey,TValue>>.CopyTo(KeyValuePair<TKey,TValue>[], Int32)

Kopiuje elementy ICollection do tablicy, rozpoczynając od określonego indeksu tablicy.Copies the elements of the ICollection to an array, starting at the specified array index.

ICollection<KeyValuePair<TKey,TValue>>.IsReadOnly

Pobiera wartość wskazującą, czy ICollection jest tylko do odczytu.Gets a value that indicates whether the ICollection is read-only.

ICollection<KeyValuePair<TKey,TValue>>.Remove(KeyValuePair<TKey,TValue>)

Usuwa określoną parę klucz/wartość z kolekcji.Removes the specified key/value pair from the collection.

IDictionary.Add(Object, Object)

Dodaje określony klucz i wartość do słownika.Adds the specified key and value to the dictionary.

IDictionary.Contains(Object)

Pobiera wartość wskazującą, że IDictionary<TKey,TValue> zawiera element z określonym kluczem.Gets a value that indicates the IDictionary<TKey,TValue> contains an element with the specified key.

IDictionary.GetEnumerator()

Zapewnia IDictionaryEnumerator dla IDictionary<TKey,TValue>.Provides a IDictionaryEnumerator for the IDictionary<TKey,TValue>.

IDictionary.IsFixedSize

Pobiera wartość wskazującą, czy IDictionary<TKey,TValue> ma stały rozmiar.Gets a value that indicates whether the IDictionary<TKey,TValue> has a fixed size.

IDictionary.IsReadOnly

Pobiera wartość wskazującą, czy IDictionary<TKey,TValue> jest tylko do odczytu.Gets a value that indicates whether the IDictionary<TKey,TValue> is read-only.

IDictionary.Item[Object]

Pobiera lub ustawia wartość skojarzoną z określonym kluczem.Gets or sets the value associated with the specified key.

IDictionary.Keys

Pobiera ICollection zawierający klucze IDictionary<TKey,TValue>.Gets an ICollection that contains the keys of the IDictionary<TKey,TValue>.

IDictionary.Remove(Object)

Usuwa element z określonym kluczem z IDictionary.Removes the element with the specified key from the IDictionary.

IDictionary.Values

Pobiera ICollection zawierający wartości z IDictionary.Gets an ICollection that contains the values in the IDictionary.

IDictionary<TKey,TValue>.Add(TKey, TValue)

Dodaje określony klucz i wartość do IDictionary<TKey,TValue>.Adds the specified key and value to the IDictionary<TKey,TValue>.

IDictionary<TKey,TValue>.Remove(TKey)

Usuwa element z określonym kluczem z IDictionary<TKey,TValue>.Removes the element with the specified key from the IDictionary<TKey,TValue>.

IEnumerable.GetEnumerator()

Zwraca moduł wyliczający, który wykonuje iterację przez ConcurrentDictionary<TKey,TValue>.Returns an enumerator that iterates through the ConcurrentDictionary<TKey,TValue>.

IReadOnlyDictionary<TKey,TValue>.Keys

Pobiera kolekcję zawierającą klucze w Dictionary<TKey,TValue>.Gets a collection containing the keys in the Dictionary<TKey,TValue>.

IReadOnlyDictionary<TKey,TValue>.Values

Pobiera kolekcję zawierającą wartości z Dictionary<TKey,TValue>.Gets a collection that contains the values in the Dictionary<TKey,TValue>.

Metody rozszerzania

GetValueOrDefault<TKey,TValue>(IReadOnlyDictionary<TKey,TValue>, TKey)

Próbuje pobrać wartość skojarzoną z określonym key w dictionary.Tries to get the value associated with the specified key in the dictionary.

GetValueOrDefault<TKey,TValue>(IReadOnlyDictionary<TKey,TValue>, TKey, TValue)

Próbuje pobrać wartość skojarzoną z określonym kluczem w dictionary.Tries to get the value associated with the specified key in the dictionary.

Remove<TKey,TValue>(IDictionary<TKey,TValue>, TKey, TValue)

Próbuje usunąć wartość o określonym key z dictionary.Tries to remove the value with the specified key from the dictionary.

TryAdd<TKey,TValue>(IDictionary<TKey,TValue>, TKey, TValue)

Próbuje dodać określony key i value do dictionary.Tries to add the specified key and value to the dictionary.

CopyToDataTable<T>(IEnumerable<T>)

Zwraca DataTable, który zawiera kopie obiektów DataRow, przy użyciu obiektu wejściowego IEnumerable<T>, gdzie T parametru generycznego jest DataRow.Returns a DataTable that contains copies of the DataRow objects, given an input IEnumerable<T> object where the generic parameter T is DataRow.

CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption)

Kopiuje DataRow obiektów do określonego DataTable, używając obiektu wejściowego IEnumerable<T>, gdzie T parametru generycznego jest DataRow.Copies DataRow objects to the specified DataTable, given an input IEnumerable<T> object where the generic parameter T is DataRow.

CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler)

Kopiuje DataRow obiektów do określonego DataTable, używając obiektu wejściowego IEnumerable<T>, gdzie T parametru generycznego jest DataRow.Copies DataRow objects to the specified DataTable, given an input IEnumerable<T> object where the generic parameter T is DataRow.

Cast<TResult>(IEnumerable)

Rzutuje elementy IEnumerable określonego typu.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

Filtruje elementy IEnumerable w oparciu o określony typ.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

Włącza przetwarzanie równoległe zapytania.Enables parallelization of a query.

AsQueryable(IEnumerable)

Konwertuje IEnumerable na IQueryable.Converts an IEnumerable to an IQueryable.

Ancestors<T>(IEnumerable<T>)

Zwraca kolekcję elementów, które zawierają elementy nadrzędne każdego węzła w kolekcji źródłowej.Returns a collection of elements that contains the ancestors of every node in the source collection.

Ancestors<T>(IEnumerable<T>, XName)

Zwraca przefiltrowany kolekcji elementów, które zawierają elementy nadrzędne każdego węzła w kolekcji źródłowej.Returns a filtered collection of elements that contains the ancestors of every node in the source collection. Kolekcja zawiera tylko elementy, które mają pasujące XName.Only elements that have a matching XName are included in the collection.

DescendantNodes<T>(IEnumerable<T>)

Zwraca kolekcję węzłów podrzędnych każdego dokumentu i elementu w kolekcji źródłowej.Returns a collection of the descendant nodes of every document and element in the source collection.

Descendants<T>(IEnumerable<T>)

Zwraca kolekcję elementów, które zawierają elementy podrzędne każdego elementu i dokumentu w kolekcji źródłowej.Returns a collection of elements that contains the descendant elements of every element and document in the source collection.

Descendants<T>(IEnumerable<T>, XName)

Zwraca przefiltrowany kolekcji elementów, które zawierają elementy podrzędne każdego elementu i dokumentu w kolekcji źródłowej.Returns a filtered collection of elements that contains the descendant elements of every element and document in the source collection. Kolekcja zawiera tylko elementy, które mają pasujące XName.Only elements that have a matching XName are included in the collection.

Elements<T>(IEnumerable<T>)

Zwraca kolekcję elementów podrzędnych każdego elementu i dokumentu w kolekcji źródłowej.Returns a collection of the child elements of every element and document in the source collection.

Elements<T>(IEnumerable<T>, XName)

Zwraca filtrowaną kolekcję elementów podrzędnych każdego elementu i dokumentu w kolekcji źródłowej.Returns a filtered collection of the child elements of every element and document in the source collection. Kolekcja zawiera tylko elementy, które mają pasujące XName.Only elements that have a matching XName are included in the collection.

InDocumentOrder<T>(IEnumerable<T>)

Zwraca kolekcję węzłów, która zawiera wszystkie węzły w kolekcji źródłowej, posortowane w kolejności dokumentu.Returns a collection of nodes that contains all nodes in the source collection, sorted in document order.

Nodes<T>(IEnumerable<T>)

Zwraca kolekcję węzłów podrzędnych każdego dokumentu i elementu w kolekcji źródłowej.Returns a collection of the child nodes of every document and element in the source collection.

Remove<T>(IEnumerable<T>)

Usuwa każdy węzeł w kolekcji źródłowej z węzła nadrzędnego.Removes every node in the source collection from its parent node.

Dotyczy

Bezpieczeństwo wątkowe

Wszystkie publiczne i chronione elementy członkowskie ConcurrentDictionary<TKey,TValue> są bezpieczne dla wątków i mogą być używane współbieżnie z wielu wątków.All public and protected members of ConcurrentDictionary<TKey,TValue> are thread-safe and may be used concurrently from multiple threads. Jednak do elementów członkowskich, do których można uzyskać dostęp za pomocą jednego z interfejsów ConcurrentDictionary<TKey,TValue> implementujących, w tym metod rozszerzających, nie ma gwarancji, że są bezpieczne wątkowo i mogą być wymagane do synchronizacji przez obiekt wywołujący.However, members accessed through one of the interfaces the ConcurrentDictionary<TKey,TValue> implements, including extension methods, are not guaranteed to be thread safe and may need to be synchronized by the caller.

Zobacz też