17 public class ConcurrentDictionary<TKey, TValue> :
IDictionary<TKey, TValue>,
ICollection<KeyValuePair<TKey, TValue>>,
IEnumerable<KeyValuePair<TKey, TValue>>,
IEnumerable,
IDictionary,
ICollection,
IReadOnlyDictionary<TKey, TValue>,
IReadOnlyCollection<KeyValuePair<TKey, TValue>>
226 if (
this ==
null ||
this !=
null)
284 public TValue
this[TKey
key]
963 private bool MoveNext()
1029 private int <i>5
__3;
class f__AnonymousType0<< Count > j__TPar
DictionaryEnumerator(ConcurrentDictionary< TKey, TValue > dictionary)
IEnumerator< KeyValuePair< TKey, TValue > > _enumerator
Node(TKey key, TValue value, int hashcode, ConcurrentDictionary< TKey, TValue >.Node next)
ConcurrentDictionary< TKey, TValue >.Node _next
readonly ConcurrentDictionary< TKey, TValue >.Node[] _buckets
Tables(ConcurrentDictionary< TKey, TValue >.Node[] buckets, object[] locks, int[] countPerLock)
bool ContainsKey(TKey key)
IEqualityComparer< TKey > _comparer
void CopyToPairs(KeyValuePair< TKey, TValue >[] array, int index)
TValue GetOrAdd(TKey key, TValue value)
static ConcurrentDictionary()
static void GetBucketAndLockNo(int hashcode, [Out] int bucketNo, [Out] int lockNo, int bucketCount, int lockCount)
bool TryAddInternal(TKey key, int hashcode, TValue value, bool updateIfExists, bool acquireLock, [Out] TValue resultingValue)
class< GetEnumerator > IDisposable
bool TryRemoveInternal(TKey key, [Out] TValue value, bool matchValue, TValue oldValue)
static int GetBucket(int hashcode, int bucketCount)
bool TryGetValue(TKey key, [Out] TValue value)
class< GetEnumerator > d__35
readonly bool _growLockArray
void OnDeserialized(StreamingContext context)
static void ThrowKeyNullException()
IEnumerator< KeyValuePair< TKey, TValue > > GetEnumerator()
int _serializationCapacity
ReadOnlyCollection< TKey > GetKeys()
void CopyToEntries(DictionaryEntry[] array, int index)
static readonly bool s_isValueWriteAtomic
ICollection< TValue > Values
void GrowTable(ConcurrentDictionary< TKey, TValue >.Tables tables)
int _serializationConcurrencyLevel
bool TryGetValueInternal(TKey key, int hashcode, [Out] TValue value)
void CopyToObjects(object[] array, int index)
void AcquireLocks(int fromInclusive, int toExclusive, int locksAcquired)
void InitializeFromCollection(IEnumerable< KeyValuePair< TKey, TValue > > collection)
void AcquireAllLocks(int locksAcquired)
static void ThrowKeyNotFoundException(object key)
ReadOnlyCollection< TValue > GetValues()
bool TryAdd(TKey key, TValue value)
void ReleaseLocks(int fromInclusive, int toExclusive)
ConcurrentDictionary< TKey, TValue >.Tables _tables
ConcurrentDictionary(IEqualityComparer< TKey > comparer)
static int DefaultConcurrencyLevel
void OnSerialized(StreamingContext context)
KeyValuePair< TKey, TValue >[] _serializationArray
ConcurrentDictionary(int concurrencyLevel, int capacity, bool growLockArray, IEqualityComparer< TKey > comparer)
KeyValuePair< TKey, TValue >[] ToArray()
static bool IsValueWriteAtomic()
void OnSerializing(StreamingContext context)
bool TryRemove(TKey key, [Out] TValue value)
TValue GetOrAdd(TKey key, Func< TKey, TValue > valueFactory)
static void Exit(object obj)
static TypeCode GetTypeCode(Type type)
void CopyTo(Array array, int index)
IDictionaryEnumerator GetEnumerator()
bool Contains(object key)
void Add(object key, object value)
IEnumerator GetEnumerator()
readonly StreamingContextStates m_state