| Class | Description |
| BTreeDictionary<TKey,TValue> | Implements an IDictionary interface for an in-memory B+Tree |
| BTreeList<T> | Implements an IList interface for an in-memory B+Tree of unique values |
| DisposingList | Disposes of each element in the collection when the collection is disposed. |
| DisposingList<T> | Disposes of each element in the collection when the collection is disposed. |
| HashUtilities | |
| KeyValueComparer<TKey,TValue> | Represents a key-value comparison |
| LListNode | The basic Linked-list node, untyped, use LListNode<T> for strong typed nodes and lists. |
| LListNode<T> | A typed node, used similiarly to LinkedListNode<T>. Can belong to single list at a time, the type of list is usually LListNode<T>.LList |
| LListNode.LList<T> | Provides a linked list of nodes of type T |
| LListNode.LList | Provides a linked list of nodes of type T |
| LListNode.LList<TNode> | Provides a linked list of nodes of type T |
| LurchTable<TKey,TValue> | LurchTable stands for "Least Used Recently Concurrent Hash Table" and has definate similarities to both the .NET 4 ConcurrentDictionary as well as Java's LinkedHashMap. This gives you a thread-safe dictionary/hashtable that stores element ordering by insertion, updates, or access. In addition it can be configured to use a 'hard-limit' count of items that will automatically 'pop' the oldest item in the collection. |
| LurchTable.KeyCollection<TKey,TValue> | Provides the collection of Keys for the LurchTable |
| LurchTable.ValueCollection<TKey,TValue> | Provides the collection of Values for the LurchTable |
| MergeSort | Provides a stable array sort based on merge-sort using O(n) additional memory. As a release build, this routine will operate faster than Array.Sort when using a custom (non-default) comparison. It also has the advantange of being stable, that is it preserves the order of elements that compare as being of equal value. |
| OrderedEnumeration<T> | Creates an ordered enumeration from an unordered enumeration by paginating the data, sorting the page, and then performing a binary-tree grouped mergesort on the resulting pages. When the page size (memoryLimit) is hit, the page will be unloaded to disk and restored on demand if a serializer is provided. |
| OrderedKeyValuePairs<TKey,TValue> | Speicalizes the OrderedEnumeration of T to use key/value pairs with a key comparer. |
| OrdinalList | An ordinal list is a list optimized to store lists of integer data that can then be manipulated as a set with intersect/union etc. Each integer stored is translated to a bit offset and thus cann't be stored more than once or in any particular order. Note: adding the value int.Max will allocate int.Max/8 bytes of memory, so this is best used with ordinal indexes into a list that is smaller than 8,388,608 (one megabyte of bits). Pre-allocate with Ceiling = max for better performance, or add the integers in reverse order (highest to lowest). |
| ReadOnlyList<T> | A readonly list of T |
| SetList<T> | Represents an immutable collection of unique items that can be manipulated as a set, intersect/union/etc. |
| SynchronizedDictionary<TKey,TValue> | Represents a thread-safe generic collection of key/value pairs. |
| SynchronizedList<T> | Represents a collection of objects that can be individually accessed by index. |