Enhanced C#
Language of your choice: library documentation
Nested classes | Properties | Public Member Functions | List of all members
Loyc.Collections.CPStringTrie< TValue > Class Template Reference

A compact patricia trie that uses strings as keys. More...


Source file:
Inheritance diagram for Loyc.Collections.CPStringTrie< TValue >:
Loyc.Collections.CPTrie< TValue >

Remarks

A compact patricia trie that uses strings as keys.

This data structure can be very space-efficient when asked to store a large numbers of keys with common prefixes; maximum efficiency is achieved when the associated values are all (or almost all) null.

Template Parameters
TValueType of value associated with each key.

Nested classes

class  Enumerator
 Enumerates key-value pairs in a CPStringTrie. More...
 
class  KeyCollection
 Return value of CPStringTrie<T>.Keys. More...
 
class  KeyEnumerator
 Enumerates keys of a CPStringTrie. More...
 

Properties

TValue this[string key, TValue defaultValue] [get]
 
TValue this[string key] [get, set]
 
KeyCollection Keys [get]
 
CPValueCollection< TValue > Values [get]
 
new int Count [get]
 
bool IsReadOnly [get]
 
bool IsEmpty [get]
 

Public Member Functions

 CPStringTrie (CPStringTrie< TValue > clone)
 
new int CountMemoryUsage (int sizeOfT)
 
void Add (string key, TValue value)
 
bool TryAdd (string key, TValue value)
 Adds the specified key-value pair only if the specified key is not already present in the trie. More...
 
bool TryAdd (string key, ref TValue value)
 Adds the specified key-value pair only if the specified key is not already present in the trie. More...
 
bool ContainsKey (string key)
 
bool Remove (string key)
 
bool Remove (string key, ref TValue value)
 
bool TryGetValue (string key, out TValue value)
 
void Add (KeyValuePair< string, TValue > item)
 
new void Clear ()
 
bool Contains (KeyValuePair< string, TValue > item)
 
void CopyTo (KeyValuePair< string, TValue >[] array, int arrayIndex)
 
bool Remove (KeyValuePair< string, TValue > item)
 
Enumerator GetEnumerator ()
 
Enumerator FindAtLeast (string key)
 
Enumerator FindExact (string key)
 
bool Find (string key, out Enumerator e)
 
CPStringTrie< TValue > Clone ()
 
- Public Member Functions inherited from Loyc.Collections.CPTrie< TValue >
 CPTrie (CPTrie< T > copy)
 

Additional Inherited Members

- Protected Member Functions inherited from Loyc.Collections.CPTrie< TValue >
bool Find (ref KeyWalker key, CPEnumerator< T > e)
 
bool Find (ref KeyWalker key, ref T value)
 Retrieves the value associated with the specified key; does nothing if the key does not exist. More...
 
bool ContainsKey (ref KeyWalker key)
 
bool Set (ref KeyWalker key, ref T value, CPMode mode)
 Associates the specified value with the specified key. More...
 
bool Remove (ref KeyWalker key, ref T value)
 Removes the specified key and associated value. More...
 
bool Remove (ref KeyWalker key)
 
void Clear ()
 
int CountMemoryUsage (int sizeOfT)
 Calculates the memory usage of this object, assuming a 32-bit architecture. More...
 
- Static Protected Member Functions inherited from Loyc.Collections.CPTrie< TValue >
static StringBuilder BytesToStringBuilder (byte[] key, int keyLength)
 
- Protected static fields inherited from Loyc.Collections.CPTrie< TValue >
static Comparer< T > DefaultComparer
 

Member Function Documentation

bool Loyc.Collections.CPStringTrie< TValue >.TryAdd ( string  key,
TValue  value 
)
inline

Adds the specified key-value pair only if the specified key is not already present in the trie.

Returns
Returns true if the key-value pair was added or false if the key already existed. In the false case, the trie is not modified.
bool Loyc.Collections.CPStringTrie< TValue >.TryAdd ( string  key,
ref TValue  value 
)
inline

Adds the specified key-value pair only if the specified key is not already present in the trie.

Parameters
valueOn entry, value specifies the value to associate with the specified key, but if the key already exists, value is changed to the value associated with the existing key.
Returns
Returns true if the key-value pair was added or false if the key already existed. In the false case, the trie is not modified.

References Loyc.Collections.Add, Loyc.Collections.Impl.CPEnumerator< T >.IsValid, Loyc.Localize.Localized(), and Loyc.Collections.Remove.