ConcurrentDictionary<TKey,TValue> ConcurrentDictionary<TKey,TValue> ConcurrentDictionary<TKey,TValue> ConcurrentDictionary<TKey,TValue> Class

Определение

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

Как и System.Collections.Generic.Dictionary<TKey,TValue> класс, ConcurrentDictionary<TKey,TValue> реализует IDictionary<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 пару ключ/значение в словаре, безусловно и перезаписать значение ключа, который уже существует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>) принимает ключ, значение для добавления и делегат обновления.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 и GetOrAdd.The 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>() ConcurrentDictionary<TKey,TValue>() 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<KeyValuePair<TKey,TValue>>) ConcurrentDictionary<TKey,TValue>(IEnumerable<KeyValuePair<TKey,TValue>>) 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<KeyValuePair<TKey,TValue>>, IEqualityComparer<TKey>) ConcurrentDictionary<TKey,TValue>(IEnumerable<KeyValuePair<TKey,TValue>>, IEqualityComparer<TKey>) 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<TKey>) ConcurrentDictionary<TKey,TValue>(IEqualityComparer<TKey>) 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>(Int32, IEnumerable<KeyValuePair<TKey,TValue>>, IEqualityComparer<TKey>) ConcurrentDictionary<TKey,TValue>(Int32, IEnumerable<KeyValuePair<TKey,TValue>>, IEqualityComparer<TKey>) 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>(Int32, Int32) ConcurrentDictionary<TKey,TValue>(Int32, Int32) 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>(Int32, Int32, IEqualityComparer<TKey>) ConcurrentDictionary<TKey,TValue>(Int32, Int32, IEqualityComparer<TKey>) 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 Count Count Count

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

IsEmpty IsEmpty IsEmpty IsEmpty

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

Item[TKey] Item[TKey] Item[TKey] Item[TKey]

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

Keys Keys Keys Keys

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

Values Values Values 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>) AddOrUpdate(TKey, Func<TKey,TValue>, Func<TKey,TValue,TValue>) AddOrUpdate(TKey, Func<TKey,TValue>, Func<TKey,TValue,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>) AddOrUpdate(TKey, TValue, Func<TKey,TValue,TValue>) AddOrUpdate(TKey, TValue, Func<TKey,TValue,TValue>) 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) AddOrUpdate<TArg>(TKey, Func<TKey,TArg,TValue>, Func<TKey,TValue,TArg,TValue>, TArg) AddOrUpdate<TArg>(TKey, Func<TKey,TArg,TValue>, Func<TKey,TValue,TArg,TValue>, TArg) 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() Clear() Clear() Clear()

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

ContainsKey(TKey) ContainsKey(TKey) ContainsKey(TKey) ContainsKey(TKey)

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

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

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

(Inherited from Object)
GetEnumerator() GetEnumerator() GetEnumerator() GetEnumerator()

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

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

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

(Inherited from Object)
GetOrAdd(TKey, Func<TKey,TValue>) GetOrAdd(TKey, Func<TKey,TValue>) GetOrAdd(TKey, Func<TKey,TValue>) 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) GetOrAdd(TKey, TValue) GetOrAdd(TKey, TValue) 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) GetOrAdd<TArg>(TKey, Func<TKey,TArg,TValue>, TArg) GetOrAdd<TArg>(TKey, Func<TKey,TArg,TValue>, TArg) 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() GetType() GetType() GetType()

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

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

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

(Inherited from Object)
ToArray() ToArray() ToArray() ToArray()

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

ToString() ToString() ToString() ToString()

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

(Inherited from Object)
TryAdd(TKey, TValue) TryAdd(TKey, TValue) TryAdd(TKey, TValue) TryAdd(TKey, TValue)

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

TryGetValue(TKey, TValue) TryGetValue(TKey, TValue) TryGetValue(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) TryRemove(TKey, TValue) TryRemove(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) TryUpdate(TKey, TValue, TValue) TryUpdate(TKey, TValue, 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.CopyTo(Array, Int32) ICollection.CopyTo(Array, Int32) ICollection.CopyTo(Array, Int32)

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

ICollection.IsSynchronized ICollection.IsSynchronized ICollection.IsSynchronized ICollection.IsSynchronized

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

ICollection.SyncRoot ICollection.SyncRoot ICollection.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>) ICollection<KeyValuePair<TKey,TValue>>.Add(KeyValuePair<TKey,TValue>) ICollection<KeyValuePair<TKey,TValue>>.Add(KeyValuePair<TKey,TValue>) ICollection<KeyValuePair<TKey,TValue>>.Add(KeyValuePair<TKey,TValue>)

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

ICollection<KeyValuePair<TKey,TValue>>.Contains(KeyValuePair<TKey,TValue>) ICollection<KeyValuePair<TKey,TValue>>.Contains(KeyValuePair<TKey,TValue>) ICollection<KeyValuePair<TKey,TValue>>.Contains(KeyValuePair<TKey,TValue>) 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<KeyValuePair<TKey,TValue>>.CopyTo(KeyValuePair<TKey,TValue>[], Int32) ICollection<KeyValuePair<TKey,TValue>>.CopyTo(KeyValuePair<TKey,TValue>[], Int32) 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<KeyValuePair<TKey,TValue>>.IsReadOnly ICollection<KeyValuePair<TKey,TValue>>.IsReadOnly 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>) ICollection<KeyValuePair<TKey,TValue>>.Remove(KeyValuePair<TKey,TValue>) ICollection<KeyValuePair<TKey,TValue>>.Remove(KeyValuePair<TKey,TValue>) ICollection<KeyValuePair<TKey,TValue>>.Remove(KeyValuePair<TKey,TValue>)

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

IDictionary.Add(Object, Object) IDictionary.Add(Object, Object) IDictionary.Add(Object, Object) IDictionary.Add(Object, Object)

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

IDictionary.Contains(Object) IDictionary.Contains(Object) IDictionary.Contains(Object) IDictionary.Contains(Object)

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

IDictionary.GetEnumerator() IDictionary.GetEnumerator() IDictionary.GetEnumerator() IDictionary.GetEnumerator()

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

IDictionary.IsFixedSize IDictionary.IsFixedSize IDictionary.IsFixedSize IDictionary.IsFixedSize

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

IDictionary.IsReadOnly IDictionary.IsReadOnly IDictionary.IsReadOnly IDictionary.IsReadOnly

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

IDictionary.Item[Object] IDictionary.Item[Object] IDictionary.Item[Object] IDictionary.Item[Object]

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

IDictionary.Keys IDictionary.Keys IDictionary.Keys IDictionary.Keys

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

IDictionary.Remove(Object) IDictionary.Remove(Object) IDictionary.Remove(Object) IDictionary.Remove(Object)

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

IDictionary.Values IDictionary.Values IDictionary.Values IDictionary.Values

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

IDictionary<TKey,TValue>.Add(TKey, TValue) IDictionary<TKey,TValue>.Add(TKey, TValue) IDictionary<TKey,TValue>.Add(TKey, TValue) 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>.Remove(TKey) IDictionary<TKey,TValue>.Remove(TKey) IDictionary<TKey,TValue>.Remove(TKey)

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

IEnumerable.GetEnumerator() IEnumerable.GetEnumerator() IEnumerable.GetEnumerator() IEnumerable.GetEnumerator()

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

IReadOnlyDictionary<TKey,TValue>.Keys IReadOnlyDictionary<TKey,TValue>.Keys IReadOnlyDictionary<TKey,TValue>.Keys IReadOnlyDictionary<TKey,TValue>.Keys

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

IReadOnlyDictionary<TKey,TValue>.Values IReadOnlyDictionary<TKey,TValue>.Values IReadOnlyDictionary<TKey,TValue>.Values 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) GetValueOrDefault<TKey,TValue>(IReadOnlyDictionary<TKey,TValue>, TKey) GetValueOrDefault<TKey,TValue>(IReadOnlyDictionary<TKey,TValue>, TKey) GetValueOrDefault<TKey,TValue>(IReadOnlyDictionary<TKey,TValue>, TKey)
GetValueOrDefault<TKey,TValue>(IReadOnlyDictionary<TKey,TValue>, TKey, TValue) GetValueOrDefault<TKey,TValue>(IReadOnlyDictionary<TKey,TValue>, TKey, TValue) GetValueOrDefault<TKey,TValue>(IReadOnlyDictionary<TKey,TValue>, TKey, TValue) GetValueOrDefault<TKey,TValue>(IReadOnlyDictionary<TKey,TValue>, TKey, TValue)
Remove<TKey,TValue>(IDictionary<TKey,TValue>, TKey, TValue) Remove<TKey,TValue>(IDictionary<TKey,TValue>, TKey, TValue) Remove<TKey,TValue>(IDictionary<TKey,TValue>, TKey, TValue) Remove<TKey,TValue>(IDictionary<TKey,TValue>, TKey, TValue)
TryAdd<TKey,TValue>(IDictionary<TKey,TValue>, TKey, TValue) TryAdd<TKey,TValue>(IDictionary<TKey,TValue>, TKey, TValue) TryAdd<TKey,TValue>(IDictionary<TKey,TValue>, TKey, TValue) TryAdd<TKey,TValue>(IDictionary<TKey,TValue>, TKey, TValue)
CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>) 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) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption) 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) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler) 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) Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable)

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

OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable)

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

AsParallel(IEnumerable) AsParallel(IEnumerable) AsParallel(IEnumerable) AsParallel(IEnumerable)

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

AsQueryable(IEnumerable) AsQueryable(IEnumerable) AsQueryable(IEnumerable) AsQueryable(IEnumerable)

Преобразует IEnumerable для IQueryable.Converts an IEnumerable to an IQueryable.

Ancestors<T>(IEnumerable<T>) Ancestors<T>(IEnumerable<T>) Ancestors<T>(IEnumerable<T>) 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) Ancestors<T>(IEnumerable<T>, XName) Ancestors<T>(IEnumerable<T>, XName) 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>) DescendantNodes<T>(IEnumerable<T>) DescendantNodes<T>(IEnumerable<T>) DescendantNodes<T>(IEnumerable<T>)

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

Descendants<T>(IEnumerable<T>) Descendants<T>(IEnumerable<T>) Descendants<T>(IEnumerable<T>) 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) Descendants<T>(IEnumerable<T>, XName) Descendants<T>(IEnumerable<T>, XName) 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>) Elements<T>(IEnumerable<T>) Elements<T>(IEnumerable<T>) 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) Elements<T>(IEnumerable<T>, XName) Elements<T>(IEnumerable<T>, XName) 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>) InDocumentOrder<T>(IEnumerable<T>) InDocumentOrder<T>(IEnumerable<T>) 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>) Nodes<T>(IEnumerable<T>) Nodes<T>(IEnumerable<T>) Nodes<T>(IEnumerable<T>)

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

Remove<T>(IEnumerable<T>) Remove<T>(IEnumerable<T>) Remove<T>(IEnumerable<T>) 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.

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