ConcurrentDictionary<TKey,TValue> Класс

Определение

Представляет потокобезопасную коллекцию пар "ключ-значение", доступ к которой могут одновременно получать несколько потоков.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)

Параметры типа

TKey

Тип ключей в словаре.The type of the keys in the dictionary.

TValue

Тип значений в словаре.The type of the values in the dictionary.

Наследование
ConcurrentDictionary<TKey,TValue>
Атрибуты
Реализации

Примеры

В следующем примере показано, как создать 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

Комментарии

Для очень больших ConcurrentDictionary<TKey,TValue> объектов можно увеличить максимальный размер массива до 2 гигабайт (ГБ) в 64-разрядной системе, <gcAllowVeryLargeObjects> установив для true элемента конфигурации значение в среде выполнения.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.

Примечание

ConcurrentDictionary<TKey,TValue>реализует интерфейсы IReadOnlyDictionary<TKey,TValue> ConcurrentDictionary<TKey,TValue> и, начинающиеся с .NET Framework 4.6.NET Framework 4.6. в предыдущих версиях .NET Framework класс не реализовал эти интерфейсы. IReadOnlyCollection<T>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.

Как и ConcurrentDictionary<TKey,TValue> IDictionary<TKey,TValue> класс, реализует интерфейс. System.Collections.Generic.Dictionary<TKey,TValue>Like the System.Collections.Generic.Dictionary<TKey,TValue> class, ConcurrentDictionary<TKey,TValue> implements the IDictionary<TKey,TValue> interface. Кроме того, ConcurrentDictionary<TKey,TValue> предоставляет несколько методов для добавления или обновления пар "ключ-значение" в словаре, как описано в следующей таблице.In addition, ConcurrentDictionary<TKey,TValue> provides several methods for adding or updating key/value pairs in the dictionary, as described in the following table.

ДействиеTo do this Используйте этот методUse this method Примечания об использованииUsage notes
Добавьте новый ключ в словарь, если он еще не существует в словаре.Add a new key to the dictionary, if it doesn't already exist in the dictionary TryAdd Этот метод добавляет указанную пару "ключ-значение", если ключ в настоящее время не существует в словаре.This method adds the specified key/value pair, if the key doesn't currently exist in the dictionary. Метод возвращает true или false в зависимости от того, была ли добавлена новая пара.The method returns true or false depending on whether the new pair was added.
Обновление значения для существующего ключа в словаре, если этот ключ имеет определенное значениеUpdate the value for an existing key in the dictionary, if that key has a specific value TryUpdate Этот метод проверяет, имеет ли ключ указанное значение, и, если это так, обновляет ключ новым значением.This method checks whether the key has a specified value, and if it does, updates the key with a new value. Он аналогичен CompareExchange методу, за исключением того, что он используется для элементов словаря.It's similar to the CompareExchange method, except that it's used for dictionary elements.
Сохранение пары "ключ-значение" в словаре без условных условий и перезапись значения уже существующего ключаStore a key/value pair in the dictionary unconditionally, and overwrite the value of a key that already exists Метод задания индексатора:dictionary[key] = newValueThe indexer's setter: dictionary[key] = newValue
Добавьте пару "ключ-значение" в словарь или, если ключ уже существует, обновите значение ключа на основе существующего значения ключа.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>)

- или --or-

AddOrUpdate(TKey, TValue, Func<TKey,TValue,TValue>)
AddOrUpdate(TKey, Func<TKey,TValue>, Func<TKey,TValue,TValue>)принимает ключ и два делегата.AddOrUpdate(TKey, Func<TKey,TValue>, Func<TKey,TValue,TValue>) accepts the key and two delegates. Он использует первый делегат, если ключ не существует в словаре; Он принимает ключ и возвращает значение, которое необходимо добавить для ключа.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. Если ключ существует, используется второй делегат. Он принимает ключ и его текущее значение и возвращает новое значение, которое должно быть задано для ключа.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>)принимает ключ, добавляемое значение и делегат Update.AddOrUpdate(TKey, TValue, Func<TKey,TValue,TValue>) accepts the key, a value to add, and the update delegate. Это то же самое, что и Предыдущая перегрузка, за исключением того, что для добавления ключа не используется делегат.This is the same as the previous overload, except that it doesn't use a delegate to add a key.
Возвращает значение ключа в словаре, добавляя значение в словарь и возвращая его, если ключ не существует.Get 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)

-или--or-

GetOrAdd(TKey, Func<TKey,TValue>)
Эти перегрузки обеспечивают отложенную инициализацию для пары "ключ-значение" в словаре, добавляя значение только в том случае, если это не так.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)принимает значение, которое необходимо добавить, если ключ не существует.GetOrAdd(TKey, TValue) takes the value to be added if the key doesn't exist.

GetOrAdd(TKey, Func<TKey,TValue>)принимает делегат, который создаст значение, если ключ не существует.GetOrAdd(TKey, Func<TKey,TValue>) takes a delegate that will generate the value if the key doesn't exist.

Все эти операции являются атомарными и являются потокобезопасными по отношению ко всем остальным операциям ConcurrentDictionary<TKey,TValue> класса.All these operations are atomic and are thread-safe with regards to all other operations on the ConcurrentDictionary<TKey,TValue> class. Единственными исключениями являются методы, которые принимают делегат, то есть AddOrUpdate и. GetOrAddThe only exceptions are the methods that accept a delegate, that is, AddOrUpdate and GetOrAdd. Для операций изменения и записи в словарь ConcurrentDictionary<TKey,TValue> использует детальную блокировку для обеспечения безопасности потоков.For modifications and write operations to the dictionary, ConcurrentDictionary<TKey,TValue> uses fine-grained locking to ensure thread safety. (Операции чтения в словаре выполняются без блокировки.) Однако делегаты для этих методов вызываются за пределами блокировок, чтобы избежать проблем, которые могут возникнуть при выполнении неизвестного кода при блокировке.(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. Таким образом, код, выполняемый этими делегатами, не зависит от атомарности операции.Therefore, the code executed by these delegates is not subject to the atomicity of the operation.

Конструкторы

ConcurrentDictionary<TKey,TValue>()

Инициализирует новый пустой экземпляр класса ConcurrentDictionary<TKey,TValue>, который обладает уровнем параллелизма и начальной емкостью по умолчанию, а также использует для типа ключа функцию сравнения по умолчанию.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>>)

Инициализирует новый экземпляр класса ConcurrentDictionary<TKey,TValue>, который содержит элементы, скопированные их указанной коллекции IEnumerable<T>, обладает уровнем параллелизма по умолчанию и заданной начальной емкостью, а также использует для данного типа ключа компаратор по умолчанию.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>)

Инициализирует новый экземпляр класса ConcurrentDictionary<TKey,TValue>, который содержит элементы, скопированные из указанной коллекции IEnumerable, обладает уровнем параллелизма по умолчанию, начальной емкостью по умолчанию, а также использует заданный интерфейс 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>)

Инициализирует новый экземпляр класса ConcurrentDictionary<TKey,TValue>, который является пустым, имеет уровень параллелизма и емкость по умолчанию, а также использует заданный объект 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>)

Инициализирует новый экземпляр класса ConcurrentDictionary<TKey,TValue>, который содержит элементы, скопированные из заданной коллекции IEnumerable, и использует указанный компаратор 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)

Инициализирует новый пустой экземпляр класса ConcurrentDictionary<TKey,TValue>, который обладает указанными уровнем параллелизма и емкостью, а также использует для данного типа ключей компаратор по умолчанию.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>)

Инициализирует новый пустой экземпляр класса ConcurrentDictionary<TKey,TValue>, который обладает указанными уровнем параллелизма и начальной емкостью, а также использует заданный компаратор 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>.

Свойства

Count

Возвращает число пар "ключ-значение", содержащихся в словаре ConcurrentDictionary<TKey,TValue>.Gets the number of key/value pairs contained in the ConcurrentDictionary<TKey,TValue>.

IsEmpty

Получает значение, указывающее, является ли коллекция ConcurrentDictionary<TKey,TValue> пустой.Gets a value that indicates whether the ConcurrentDictionary<TKey,TValue> is empty.

Item[TKey]

Возвращает или задает значение, связанное с указанным ключом.Gets or sets the value associated with the specified key.

Keys

Получает коллекцию, содержащую ключи из словаря Dictionary<TKey,TValue>.Gets a collection containing the keys in the Dictionary<TKey,TValue>.

Values

Получает коллекцию, содержащую все значения Dictionary<TKey,TValue>.Gets a collection that contains the values in the Dictionary<TKey,TValue>.

Методы

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

Использует заданные функции, чтобы добавить пару "ключ-значение" в коллекцию ConcurrentDictionary<TKey,TValue>, если данный ключ еще не существует, или чтобы обновить пару "ключ-значение" в коллекции ConcurrentDictionary<TKey,TValue> в случае существования ключа.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>)

Добавляет пару "ключ-значение" в коллекцию ConcurrentDictionary<TKey,TValue>, если данный ключ еще не существует, или обновляет пару "ключ-значение" в коллекции ConcurrentDictionary<TKey,TValue>, используя указанную функцию, в случае существования ключа.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)

Использует указанные функции и аргумент, чтобы добавлять пару "ключ-значение" в коллекцию ConcurrentDictionary<TKey,TValue>, если этот ключ еще не существует, или чтобы обновить пару "ключ-значение" в коллекции ConcurrentDictionary<TKey,TValue>, если ключ существует.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()

Удаляет все ключи и значения из словаря ConcurrentDictionary<TKey,TValue>.Removes all keys and values from the ConcurrentDictionary<TKey,TValue>.

ContainsKey(TKey)

Определяет, содержится ли указанный ключ в словаре ConcurrentDictionary<TKey,TValue>.Determines whether the ConcurrentDictionary<TKey,TValue> contains the specified key.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Унаследовано от Object)
GetEnumerator()

Возвращает перечислитель, осуществляющий перебор элементов списка ConcurrentDictionary<TKey,TValue>.Returns an enumerator that iterates through the ConcurrentDictionary<TKey,TValue>.

GetHashCode()

Служит в качестве хэш-функции по умолчанию.Serves as the default hash function.

(Унаследовано от Object)
GetOrAdd(TKey, Func<TKey,TValue>)

Добавляет пару "ключ-значение" в ConcurrentDictionary<TKey,TValue>, используя указанную функцию, если ключ еще не существует.Adds a key/value pair to the ConcurrentDictionary<TKey,TValue> by using the specified function if the key does not already exist. Возвращает новое значение или существующее значение, если ключ существует.Returns the new value, or the existing value if the key exists.

GetOrAdd(TKey, TValue)

Добавляет пару "ключ-значение" в коллекцию ConcurrentDictionary<TKey,TValue>, если ключ еще не существует.Adds a key/value pair to the ConcurrentDictionary<TKey,TValue> if the key does not already exist. Возвращает новое значение или существующее значение, если ключ существует.Returns the new value, or the existing value if the key exists.

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

Добавляет пару "ключ-значение" в коллекцию ConcurrentDictionary<TKey,TValue>, используя указанную функцию и аргумент, если этот ключ еще не существует, или возвращает существующее значение при наличии ключа.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()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)
ToArray()

Копирует пары "ключ-значение", хранящиеся в коллекции ConcurrentDictionary<TKey,TValue>, в новый массив.Copies the key and value pairs stored in the ConcurrentDictionary<TKey,TValue> to a new array.

ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Унаследовано от Object)
TryAdd(TKey, TValue)

Пытается добавить указанную пару "ключ-значение" в коллекцию ConcurrentDictionary<TKey,TValue>.Attempts to add the specified key and value to the ConcurrentDictionary<TKey,TValue>.

TryGetValue(TKey, TValue)

Пытается получить значение, связанное с указанным ключом, из коллекции ConcurrentDictionary<TKey,TValue>.Attempts to get the value associated with the specified key from the ConcurrentDictionary<TKey,TValue>.

TryRemove(TKey, TValue)

Пытается удалить и вернуть значение с указанным ключом из коллекции ConcurrentDictionary<TKey,TValue>.Attempts to remove and return the value that has the specified key from the ConcurrentDictionary<TKey,TValue>.

TryUpdate(TKey, TValue, TValue)

Обновляет значение, связанное с key до newValue, если существующее значение key равно comparisonValue.Updates the value associated with key to newValue if the existing value with key is equal to comparisonValue.

Явные реализации интерфейса

ICollection.CopyTo(Array, Int32)

Копирует элементы коллекции ICollection в массив, начиная с указанного индекса массива.Copies the elements of the ICollection to an array, starting at the specified array index.

ICollection.IsSynchronized

Получает значение, указывающее, синхронизирован ли доступ к ICollection с SyncRoot.Gets a value that indicates whether access to the ICollection is synchronized with the SyncRoot.

ICollection.SyncRoot

Получает объект, с помощью которого можно синхронизировать доступ к коллекции ICollection.Gets an object that can be used to synchronize access to the ICollection. Данное свойство не поддерживается.This property is not supported.

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

Добавляет элемент в коллекцию.Adds an item to the collection.

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

Получает значение, указывающее, содержит ли коллекция ICollection<T> элемент с указанным ключом.Gets whether the ICollection<T> contains an element with the specified key.

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

Копирует элементы коллекции ICollection в массив, начиная с указанного индекса массива.Copies the elements of the ICollection to an array, starting at the specified array index.

ICollection<KeyValuePair<TKey,TValue>>.IsReadOnly

Получает значение, указывающее, доступен ли объект ICollection только для чтения.Gets a value that indicates whether the ICollection is read-only.

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

Удаляет указанную пару "ключ-значение" из коллекции.Removes the specified key/value pair from the collection.

IDictionary.Add(Object, Object)

Добавляет указанные ключ и значение в словарь.Adds the specified key and value to the dictionary.

IDictionary.Contains(Object)

Получает значение, указывающее, содержит ли IDictionary<TKey,TValue> элемент с выбранным ключом.Gets a value that indicates the IDictionary<TKey,TValue> contains an element with the specified key.

IDictionary.GetEnumerator()

Предоставляет объект IDictionaryEnumerator для коллекции IDictionary<TKey,TValue>.Provides a IDictionaryEnumerator for the IDictionary<TKey,TValue>.

IDictionary.IsFixedSize

Получает значение, показывающее, имеет ли объект IDictionary<TKey,TValue> фиксированный размер.Gets a value that indicates whether the IDictionary<TKey,TValue> has a fixed size.

IDictionary.IsReadOnly

Получает значение, указывающее, доступен ли объект IDictionary<TKey,TValue> только для чтения.Gets a value that indicates whether the IDictionary<TKey,TValue> is read-only.

IDictionary.Item[Object]

Возвращает или задает значение, связанное с указанным ключом.Gets or sets the value associated with the specified key.

IDictionary.Keys

Получает коллекцию ICollection, которая содержит ключи IDictionary<TKey,TValue>.Gets an ICollection that contains the keys of the IDictionary<TKey,TValue>.

IDictionary.Remove(Object)

Удаляет элемент с указанным ключом из объекта IDictionary.Removes the element with the specified key from the IDictionary.

IDictionary.Values

Получает ICollection, которая содержит значения в IDictionary.Gets an ICollection that contains the values in the IDictionary.

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

Добавляет указанную пару "ключ-значение" в коллекцию IDictionary<TKey,TValue>.Adds the specified key and value to the IDictionary<TKey,TValue>.

IDictionary<TKey,TValue>.Remove(TKey)

Удаляет элемент с указанным ключом из объекта IDictionary<TKey,TValue>.Removes the element with the specified key from the IDictionary<TKey,TValue>.

IEnumerable.GetEnumerator()

Возвращает перечислитель, осуществляющий перебор элементов списка ConcurrentDictionary<TKey,TValue>.Returns an enumerator that iterates through the ConcurrentDictionary<TKey,TValue>.

IReadOnlyDictionary<TKey,TValue>.Keys

Получает коллекцию, содержащую ключи из словаря Dictionary<TKey,TValue>.Gets a collection containing the keys in the Dictionary<TKey,TValue>.

IReadOnlyDictionary<TKey,TValue>.Values

Получает коллекцию, содержащую все значения Dictionary<TKey,TValue>.Gets a collection that contains the values in the Dictionary<TKey,TValue>.

Методы расширения

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

Пытается получить значение, связанное с указанным key в dictionary.Tries to get the value associated with the specified key in the dictionary.

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

Пытается получить значение, связанное с указанным ключом в dictionary.Tries to get the value associated with the specified key in the dictionary.

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

Пытается удалить значение с указанным key из dictionary.Tries to remove the value with the specified key from the dictionary.

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

Пытается добавить указанные элементы key и value в dictionary.Tries to add the specified key and value to the dictionary.

CopyToDataTable<T>(IEnumerable<T>)

Возвращает объект DataTable, содержащий копии объектов DataRow при заданном входном объекте IEnumerable<T> и универсальном параметре T, равном 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)

Копирует объекты DataRow в указанный объект DataTable с заданным входным объектом IEnumerable<T>, где универсальный параметр T имеет значение 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)

Копирует объекты DataRow в указанный объект DataTable с заданным входным объектом IEnumerable<T>, где универсальный параметр T имеет значение DataRow.Copies DataRow objects to the specified DataTable, given an input IEnumerable<T> object where the generic parameter T is DataRow.

Cast<TResult>(IEnumerable)

Приводит элементы объекта IEnumerable к заданному типу.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

Выполняет фильтрацию элементов объекта IEnumerable по заданному типу.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

Позволяет осуществлять параллельный запрос.Enables parallelization of a query.

AsQueryable(IEnumerable)

Преобразовывает коллекцию IEnumerable в объект IQueryable.Converts an IEnumerable to an IQueryable.

Ancestors<T>(IEnumerable<T>)

Возвращает коллекцию элементов, содержащую предков каждого узла в исходной коллекции.Returns a collection of elements that contains the ancestors of every node in the source collection.

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

Возвращает отфильтрованную коллекцию элементов, содержащую предков каждого узла в исходной коллекции.Returns a filtered collection of elements that contains the ancestors of every node in the source collection. В коллекцию включаются только элементы, соответствующие XName.Only elements that have a matching XName are included in the collection.

DescendantNodes<T>(IEnumerable<T>)

Возвращает коллекцию подчиненных узлов каждого документа и элемента в исходной коллекции.Returns a collection of the descendant nodes of every document and element in the source collection.

Descendants<T>(IEnumerable<T>)

Возвращает коллекцию элементов, содержащую подчиненные элементы каждого элемента и документа в исходной коллекции.Returns a collection of elements that contains the descendant elements of every element and document in the source collection.

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

Возвращает отфильтрованную коллекцию элементов, содержащую подчиненные элементы каждого элемента и документа в исходной коллекции.Returns a filtered collection of elements that contains the descendant elements of every element and document in the source collection. В коллекцию включаются только элементы, соответствующие XName.Only elements that have a matching XName are included in the collection.

Elements<T>(IEnumerable<T>)

Возвращает коллекцию дочерних элементов каждого элемента и документа в исходной коллекции.Returns a collection of the child elements of every element and document in the source collection.

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

Возвращает отфильтрованную коллекцию дочерних элементов каждого элемента и документа в исходной коллекции.Returns a filtered collection of the child elements of every element and document in the source collection. В коллекцию включаются только элементы, соответствующие XName.Only elements that have a matching XName are included in the collection.

InDocumentOrder<T>(IEnumerable<T>)

Возвращает коллекцию узлов, содержащую все узлы в исходной коллекции, отсортированные в порядке следования документов.Returns a collection of nodes that contains all nodes in the source collection, sorted in document order.

Nodes<T>(IEnumerable<T>)

Возвращает коллекцию дочерних узлов каждого документа и элемента в исходной коллекции.Returns a collection of the child nodes of every document and element in the source collection.

Remove<T>(IEnumerable<T>)

Удаление каждого узла в исходной коллекции из родительского узла.Removes every node in the source collection from its parent node.

Применяется к

Потокобезопасность

Все открытые и защищенные члены ConcurrentDictionary<TKey,TValue> являются потокобезопасными и могут использоваться одновременно из нескольких потоков.All public and protected members of ConcurrentDictionary<TKey,TValue> are thread-safe and may be used concurrently from multiple threads. Однако члены, доступ к которым осуществляется через один из ConcurrentDictionary<TKey,TValue> интерфейсов, реализующих, включая методы расширения, не гарантированно являются потокобезопасными и могут быть синхронизированы вызывающим.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.

Дополнительно