DictIEq<'TKey, 'TValue>
A DictIEq is an alternate implementation of a Dictionary that can optionally act as a stack for all items with the same key. It is implemented as a hashtable with external linking, that uses primes as the table size in order to reduce the danger of funneling.
Constructors
Constructor | Description |
new(stackDuplicateKeys)
Signature: stackDuplicateKeys:bool -> unit
|
Create a DictIEq that autmatically grows and shrinks as necessary. If the optional parameter stackDuplicateKeys is set to true, the DictIEq acts as a stack for all items with the same key. |
new(initialCapacity)
Signature: initialCapacity:int -> unit
|
Create a DictIEq that autmatically grows and shrinks as necessary, but also specify an initial capacity. If the optional parameter stackDuplicateKeys is set to true, the DictIEq acts as a stack for all items with the same key. |
new(initialCapacity, stackDuplicateKeys)
Signature: (initialCapacity:int * stackDuplicateKeys:bool) -> unit
|
Create a DictIEq that autmatically grows and shrinks as necessary, but also specify an initial capacity. If the optional parameter stackDuplicateKeys is set to true, the DictIEq acts as a stack for all items with the same key. |
new(items, stackDuplicateKeys)
Signature: (items:IEnumerable<KeyValuePair<'TKey,'TValue>> * stackDuplicateKeys:bool) -> unit
|
Create a DictIEq and initialize it to contain the supplied items. If the optional parameter stackDuplicateKeys is set to true, the DictIEq acts as a stack for all items with the same key. |
Instance members
Instance member | Description |
Add(key, value)
Signature: (key:'TKey * value:'TValue) -> unit
Modifiers: abstract |
Add the item with the supplied key and the supplied value to the DictIEq. |
Add(key, hash, value)
Signature: (key:'TKey * hash:int * value:'TValue) -> unit
|
Add the item with the supplied key and the supplied value to the DictIEq. |
Add(item)
Signature: item:KeyValuePair<'TKey,'TValue> -> unit
Modifiers: abstract |
Add the supplied item to the DictIEq. |
AddObject(objkey, objvalue)
Signature: (objkey:obj * objvalue:obj) -> unit
Modifiers: abstract |
Add the item with supplied key and the supplied value both supplied as generic objects, to the DictIEq. Note that the supplied key and value are cast to the concrete type of the keys and values used in the DictIEq and this will fail if they are of different types. |
AddRange(items)
Signature: items:IEnumerable<KeyValuePair<'TKey,'TValue>> -> unit
|
Add the supplied items to the DictIEq. |
AsConcurrent()
Signature: unit -> ConcurrentDictIEq<'TKey,'TValue>
|
Retuns a concurrent wrapper around the DictIEq to enable concurrent modifications. |
Clear()
Signature: unit -> unit
Modifiers: abstract |
Remove all items. Capacity remains unchanged. |
Contains(key)
Signature: key:'TKey -> bool
|
Returns true if the DictIEq contains the item with the supplied key. |
Contains(key, hash)
Signature: (key:'TKey * hash:int) -> bool
|
Returns true if the DictIEq contains the item with the supplied key. |
Contains(key, value)
Signature: (key:'TKey * value:'TValue) -> bool
|
Returns true if the DictIEq contains the item with the supplied key and the supplied value. |
Contains(key, hash, value)
Signature: (key:'TKey * hash:int * value:'TValue) -> bool
|
Returns true if the DictIEq contains the item with the supplied key and the supplied value. |
Contains(item)
Signature: item:KeyValuePair<'TKey,'TValue> -> bool
Modifiers: abstract |
Returns true if the DictIEq contains the item with the supplied KeyValuePair. |
ContainsKey(key)
Signature: key:'TKey -> bool
Modifiers: abstract |
Returns true if the DictIEq contains the item with the supplied key. |
ContainsKey(key, hash)
Signature: (key:'TKey * hash:int) -> bool
|
Returns true if the DictIEq contains the item with the supplied key. |
CopyKeysTo(array, index)
Signature: (array:'TKey [] * index:int) -> unit
|
Copies all keys in the dictionary to the supplied array starting at the supplied index. |
CopyTo(array, index)
Signature: (array:KeyValuePair<'TKey,'TValue> [] * index:int) -> unit
Modifiers: abstract |
Copies all KeyValuePairs in the dictionary into the supplied array starting at the supplied index. |
CopyTo(array, index)
Signature: (array:Array * index:int) -> unit
Modifiers: abstract |
Copy items into supplied array starting at supplied index. |
CopyValuesTo(array, index)
Signature: (array:'TValue [] * index:int) -> unit
|
Copies all values in the dictionary to the supplied array starting at the supplied index. |
Count
Signature: int
Modifiers: abstract |
Returns the number of items currently contained in the DictIEq. |
Get(key)
Signature: key:'TKey -> 'TValue
|
Get the element with the supplied key. Throws an exception if the element is not found. This is an alias of the indexer. |
Get(key, defaultValue)
Signature: (key:'TKey * defaultValue:'TValue) -> 'TValue
|
Get the element with the supplied key. Returns the supplied default value if the element is not found. |
Get(key, hash)
Signature: (key:'TKey * hash:int) -> 'TValue
|
Get the element with the supplied key. Throws an exception if the element is not found. This is an alias of the indexer. |
Get(key, hash, defaultValue)
Signature: (key:'TKey * hash:int * defaultValue:'TValue) -> 'TValue
|
Get the element with the supplied key. Returns the supplied default value if the element is not found. |
GetAndRemove(key)
Signature: key:'TKey -> 'TValue
|
Remove the item with the supplied key from the DictIEq and return it. If multipe entries have the same key, the one that was inserted last is removed. If the item is not found, a KeyNotFoundException is thrown. |
GetEnumerator()
Signature: unit -> IEnumerator<KeyValuePair<'TKey,'TValue>>
Modifiers: abstract |
|
GetOrCreate(key, creator)
Signature: (key:'TKey * creator:Func<'TKey,'TValue>) -> 'TValue
|
Get the element with the supplied key. If the element is not found, the supplied creator is called to create a new element that is added to the DictIEq and returned. |
GetOrCreate(key, hash, creator)
Signature: (key:'TKey * hash:int * creator:Func<'TKey,'TValue>) -> 'TValue
|
Get the element with the supplied key. If the element is not found, the supplied creator is called to create a new element that is added to the DictIEq and returned. |
GetOrDefault(key)
Signature: key:'TKey -> 'TValue
|
Get the element with the supplied key. Returns the default value of the value type if the element is not found. |
IsReadOnly
Signature: bool
Modifiers: abstract |
Always returns false. Part of the ICollection implementation. |
IsSynchronized
Signature: bool
Modifiers: abstract |
|
[()]
Signature: unit -> 'TKey
Modifiers: abstract |
Get or set the item with the supplied key. If multiple items with the same key are allowed, the DictIEq acts as a stack. |
Items
Signature: IEnumerable<KeyValuePair<'TKey,'TValue>>
|
|
Keys
Signature: IEnumerable<'TKey>
Modifiers: abstract |
Returns all keys in the dictionary. |
KeysToArray()
Signature: unit -> 'TKey []
|
Returns all keys in the dictionary as an array. |
KeyType
Signature: Type
Modifiers: abstract |
|
KeyValuePairs
Signature: IEnumerable<KeyValuePair<'TKey,'TValue>>
Modifiers: abstract |
Returns all key value pairs in the DictIEq. |
KeyValuePairsForStorage
Signature: IEnumerable<KeyValuePair<'TKey,'TValue>>
|
Returns all key value pairs in the DictIEq, in such a way, that the stack order is correct when the pairs are put into a new DictIEq in the order they are returned. |
LongCount
Signature: int64
Modifiers: abstract |
Returns the number of items currently contained in the DictIEq as long. |
MaxFillFactor()
Signature: unit -> unit
|
Setting the maximal fill factor makes it possible to fine-tune the performance for certain applications. Normally this should not be necessary. |
MinFillFactor()
Signature: unit -> unit
|
Setting the minimal fill factor makes it possible to influence the shrinking behaviour of the DictIEq. Normally this should be set to a quater of the maximal fill factor. In order to completely prevent shrinking it can also be set to 0.0f. |
ObjectPairs
Signature: IEnumerable<Pair<obj>>
Modifiers: abstract |
|
Remove(key)
Signature: key:'TKey -> bool
Modifiers: abstract |
Try to remove the item with the supplied key from the DictIEq. and return true if it was succesfully removed. If multipe entries have the same key, the one that was inserted last is removed. If the item is not found, false is returned. |
Remove(key, hash)
Signature: (key:'TKey * hash:int) -> bool
|
Try to remove the item with the supplied key from the DictIEq. and return true if it was succesfully removed. If multipe entries have the same key, the one that was inserted last is removed. If the item is not found, false is returned. |
Remove(key, value)
Signature: (key:'TKey * value:'TValue) -> bool
|
Remove the item with the supplied key and the supplied value from the DictIEq. Returns true if the value was removed. |
Remove(key, hash, value)
Signature: (key:'TKey * hash:int * value:'TValue) -> bool
|
Remove the item with the supplied key and the supplied value from the DictIEq. Returns true if the value was removed. |
Remove(item)
Signature: item:KeyValuePair<'TKey,'TValue> -> bool
Modifiers: abstract |
Remove the item with the supplied KeyValuePair from the DictIEq. If the item is not found, a KeyNotFoundException is thrown. |
SyncRoot
Signature: obj
Modifiers: abstract |
|
ToArray()
Signature: unit -> KeyValuePair<'TKey,'TValue> []
|
Returns all KeyValuePairs in the dictionary as an array. |
TryAdd(key, value)
Signature: (key:'TKey * value:'TValue) -> bool
|
Add the item with the supplied key and the supplied value to the DictIEq. |
TryAdd(key, hash, value)
Signature: (key:'TKey * hash:int * value:'TValue) -> bool
|
Add the item with the supplied key and the supplied value to the DictIEq. |
TryGetValue(key, value)
Signature: (key:'TKey * value:byref<'TValue>) -> bool
Modifiers: abstract |
Try to retrieve the value with the supplied key, return true if successful and return the value via the out parameter. |
TryGetValue(key, hash, value)
Signature: (key:'TKey * hash:int * value:byref<'TValue>) -> bool
|
Try to retrieve the value with the supplied key, return true if successful and return the value via the out parameter. |
TryRemove(key, value)
Signature: (key:'TKey * value:byref<'TValue>) -> bool
|
Try to reomve the item with the supplied key. If multipe entries have the same key, the one that was inserted last is removed. Returns true if the item was found, which is returned via the out parameter. |
TryRemove(key, hash, value)
Signature: (key:'TKey * hash:int * value:byref<'TValue>) -> bool
|
Try to reomve the item with the supplied key. If multipe entries have the same key, the one that was inserted last is removed. Returns true if the item was found, which is returned via the out parameter. |
TryRemove(key, value)
Signature: (key:'TKey * value:'TValue) -> bool
|
Try to reomve the item with the supplied key and the supplied value. If multipe entries match, the one that was inserted last is removed. Returns true if the item was found. |
TryRemove(key, hash, value)
Signature: (key:'TKey * hash:int * value:'TValue) -> bool
|
Try to reomve the item with the supplied key and the supplied value. If multipe entries match, the one that was inserted last is removed. Returns true if the item was found. |
Values
Signature: IEnumerable<'TValue>
Modifiers: abstract |
Returns all values in the DictIEq. |
ValuesToArray()
Signature: unit -> 'TValue []
|
Returns all values in the dictionary as an array. |
ValuesWithKey(key)
Signature: key:'TKey -> IEnumerable<'TValue>
|
Return all the value with the given key. This method is only useful if multiple item with the same key are allowed. |
ValueType
Signature: Type
Modifiers: abstract |
|
ValueWithKeySkip(key, skip)
Signature: (key:'TKey * skip:int) -> 'TValue
|
Return the value with the given key, but skip a supplied number of entries with this key. This method is only useful if multiple item with the same key are allowed. |