Table of Contents

Class LookupDictionary<K, T>

Namespace
Tlabs.Misc
Assembly
Tlabs.Core.dll

Look-up dictionary.

public class LookupDictionary<K, T> : IReadOnlyDictionary<K, T>, IReadOnlyCollection<KeyValuePair<K, T>>, IEnumerable<KeyValuePair<K, T>>, IEnumerable where K : notnull

Type Parameters

K
T
Inheritance
LookupDictionary<K, T>
Implements
Inherited Members
Extension Methods

Remarks

Reading by looking-up an entry does not mutate the dictionary.

Constructors

LookupDictionary()

Default ctor.

public LookupDictionary()

LookupDictionary(IDictionary<K, T>, Func<K, T>)

Ctor from dict and defaultValue delegate.

public LookupDictionary(IDictionary<K, T> dict, Func<K, T> defaultValue)

Parameters

dict IDictionary<K, T>
defaultValue Func<K, T>

LookupDictionary(IEnumerable<KeyValuePair<K, T>>, Func<K, T>)

Ctor from entries and defaultValue delegate.

public LookupDictionary(IEnumerable<KeyValuePair<K, T>> entries, Func<K, T> defaultValue)

Parameters

entries IEnumerable<KeyValuePair<K, T>>
defaultValue Func<K, T>

LookupDictionary(IEnumerable<KeyValuePair<K, T>>, Func<K, T>, IEqualityComparer<K>)

Ctor from entries and defaultValue delegate and comp.

public LookupDictionary(IEnumerable<KeyValuePair<K, T>> entries, Func<K, T> defaultValue, IEqualityComparer<K> comp)

Parameters

entries IEnumerable<KeyValuePair<K, T>>
defaultValue Func<K, T>
comp IEqualityComparer<K>

LookupDictionary(IEqualityComparer<K>)

Ctor from comp.

public LookupDictionary(IEqualityComparer<K> comp)

Parameters

comp IEqualityComparer<K>

LookupDictionary(Func<K, T>)

Ctor from defaultValue delegate.

public LookupDictionary(Func<K, T> defaultValue)

Parameters

defaultValue Func<K, T>

LookupDictionary(Func<K, T>, IEqualityComparer<K>)

Ctor from defaultValue delegate and comp.

public LookupDictionary(Func<K, T> defaultValue, IEqualityComparer<K> comp)

Parameters

defaultValue Func<K, T>
comp IEqualityComparer<K>

Fields

dict

look-up dictionary.

protected IDictionary<K, T> dict

Field Value

IDictionary<K, T>

Properties

Count

public int Count { get; }

Property Value

int

this[K]

public T this[K key] { get; set; }

Parameters

key K

Property Value

T

Keys

public IEnumerable<K> Keys { get; }

Property Value

IEnumerable<K>

Values

public IEnumerable<T> Values { get; }

Property Value

IEnumerable<T>

Methods

ContainsKey(K)

public bool ContainsKey(K key)

Parameters

key K

Returns

bool

GetEnumerator()

public IEnumerator<KeyValuePair<K, T>> GetEnumerator()

Returns

IEnumerator<KeyValuePair<K, T>>

GetOrAdd(K)

Adds a new value for key by using the defaultValue delegate specified with the ctor if the key does not already exist.

public T GetOrAdd(K key)

Parameters

key K

Returns

T

The new value, or the exisitng value if the key exists.

TryGetValue(K, out T)

public bool TryGetValue(K key, out T value)

Parameters

key K
value T

Returns

bool

Explicit Interface Implementations

IEnumerable.GetEnumerator()

IEnumerator IEnumerable.GetEnumerator()

Returns

IEnumerator