C5  2.4
The C5 Generic Collection Library for C# and CLI is a comprehensive collection library supporting lists, sets, bags, dictionaries, priority queues, (FIFO) queues, and (LIFO) stacks. C5 runs on .NET 3.5+, Silverlight 5, Windows Phone 8, Xamarin.iOS, Xamarin.Android, and Mono.
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
[detail level 1234]
 NC5
 CArrayBaseBase class for collection classes of dynamic array type implementations.
 CRangeA helper class for defining results of interval queries on array based collections.
 CArrayListA list collection based on a plain dynamic array data structure. Expansion of the internal array is performed by doubling on demand. The internal array is only shrinked by the Clear method
 CC5RandomA modern random number generator based on G. Marsaglia: Seeds for Random Number Generators, Communications of the ACM 46, 5 (May 2003) 90-93; and a posting by Marsaglia to comp.lang.c on 2003-04-03.
 CCircularQueue
 CClearedEventArgs
 CClearedRangeEventArgs
 CCollectionBaseBase class (abstract) for ICollection implementations.
 CCollectionModifiedExceptionAn exception thrown by enumerators, range views etc. when accessed after the underlying collection has been modified.
 CCollectionValueBaseBase class for classes implementing ICollectionValue[T]
 CRaiseForRemoveAllHandler
 CComparerFactoryFactory class to create comparers and equality comparers using Func delegates
 CDictionaryBaseA base class for implementing a dictionary based on a set collection implementation. See the source code for T:C5.HashDictionary`2 for an example
 CDirectedCollectionBase
 CDirectedCollectionValueBase
 CDropMultiplicity
 CDuplicateNotAllowedExceptionAn exception thrown when an operation attempts to create a duplicate in a collection with set semantics (P:C5.IExtensible`1.AllowsDuplicates is false) or attempts to create a duplicate key in a dictionary
 CEnumerableBaseA base class for implementing an IEnumerable<T>
 CFixedSizeCollectionException
 CGuardedCollectionA read-only wrapper for an T:C5.ICollection`1,
 CGuardedCollectionValueA read-only wrapper for an ICollectionValue<T>
 CGuardedDictionaryA read-only wrapper for a dictionary
 CGuardedDirectedCollectionValueA read-only wrapper for a directed collection
 CGuardedDirectedEnumerableA read-only wrapper for a generic directed enumerable
 CGuardedEnumerableA read-only wrapper class for a generic enumerable
 CGuardedEnumeratorA read-only wrapper class for a generic enumerator
 CGuardedIndexedSortedRead-only wrapper for indexed sorted collections
 CGuardedListA read-only wrapper for a generic list collection Suitable as a wrapper for LinkedList, HashedLinkedList, ArrayList and HashedArray. T:C5.LinkedList`1, T:C5.HashedLinkedList`1, T:C5.ArrayList`1 or T:C5.HashedArray`1.
 CGuardedQueueA read-only wrapper for a generic indexable queue (allows indexing)
 CGuardedSequencedA read-only wrapper for a sequenced collection
 CGuardedSortedA read-only wrapper for a sorted collection
 CGuardedSortedDictionaryA read-only wrapper for a sorted dictionary
 CHashBagA bag collection based on a hash table of (item,count) pairs.
 CHashDictionaryA generic dictionary class based on a hash set class T:C5.HashSet`1.
 CHashedArrayListA list collection based on a plain dynamic array data structure. Expansion of the internal array is performed by doubling on demand. The internal array is only shrinked by the Clear method
 CHashedLinkedListA list collection class based on a doubly linked list data structure.
 CHashSetA set collection class based on linear hashing
 CICollectionThe simplest interface of a main stream generic collection with lookup, insertion and removal operations.
 CICollectionValueA generic collection that may be enumerated and can answer efficiently how many items it contains. Like
 CIDictionaryA dictionary with keys of type K and values of type V. Equivalent to a finite partial map from K to V.
 CIDirectedCollectionValueA sized generic collection, that can be enumerated backwards.
 CIDirectedEnumerableA generic collection, that can be enumerated backwards.
 CIExtensibleA generic collection to which one may add items. This is just the intersection of the main stream generic collection interfaces and the priority queue interface, T:C5.ICollection`1 and T:C5.IPriorityQueue`1.
 CIIndexedA sequenced collection, where indices of items in the order are maintained
 CIIndexedSortedA collection where items are maintained in sorted order together with their indexes in that order.
 CIListThis is an indexed collection, where the item order is chosen by the user at insertion time
 CIncompatibleViewExceptionAn exception thrown by operations on a list that expects an argument that is a view on the same underlying list.
 CInternalExceptionAn exception to throw from library code when an internal inconsistency is encountered.
 CIntervalHeapA priority queue class based on an interval heap data structure.
 CInvalidPriorityQueueHandleException
 CIPersistentSortedThe type of a sorted collection with persistence
 CIPriorityQueueA generic collection of items prioritized by a comparison (order) relation. Supports adding items and reporting or removing extremal elements
 CIPriorityQueueHandleThe base type of a priority queue handle
 CIQueueThe interface describing the operations of a FIFO queue data structure.
 CISequencedAn editable collection maintaining a definite sequence order of the items
 CIShowable(Describe usage of "L:300" format string.)
 CISortedA sorted collection, i.e. a collection where items are maintained and can be searched for in sorted order. Thus the sequence order is given as a sorting order
 CISortedDictionaryA dictionary with sorted keys.
 CIStackThe interface describing the operations of a LIFO stack data structure.
 CItemAtEventArgs
 CItemCountEventArgs
 CKeyValuePairAn entry in a dictionary from K to V.
 CKeyValuePairComparerDefault comparer for dictionary entries in a sorted dictionary. Entry comparisons only look at keys and uses an externally defined comparer for that.
 CKeyValuePairEqualityComparerDefault equalityComparer for dictionary entries. Operations only look at keys and uses an externally defined equalityComparer for that.
 CLinkedListA list collection class based on a doubly linked list data structure.
 CMappedCollectionValue
 CMappedDirectedCollectionValue
 CMappedDirectedEnumerable
 CMultiplicityOne
 CNoSuchItemExceptionAn exception thrown by a lookup or lookup with update operation that does not find the lookup item and has no other means to communicate failure
 CNotAViewExceptionAn exception thrown by an operation on a list (T:C5.IList`1) that only makes sense for a view, not for an underlying list.
 CNotComparableExceptionAn exception thrown by an operation that need to construct a natural comparer for a type.
 CReadOnlyCollectionExceptionAn exception thrown by an update operation on a Read-Only collection or dictionary
 CRecA generic record type with two fields
 CRecConst
 CSequencedBaseBase class (abstract) for sequenced collection implementations.
 CSequencedCollectionEqualityComparerPrototype for a sequenced equalityComparer for something (T) that implements ISequenced[W]. This will use ISequenced[W] specific implementations of the equality comparer operations.
 CSortedArrayA collection class implementing a sorted dynamic array data structure.
 CSortedArrayDictionary
 CSortedDictionaryBaseA base class for implementing a sorted dictionary based on a sorted set collection implementation. See the source code for T:C5.TreeDictionary`2 for an example
 CSortingA utility class with functions for sorting arrays with respect to an IComparer<T>
 CTreeBagAn implementation of Red-Black trees as an indexed, sorted collection with bag semantics, cf. CLRS. (T:C5.TreeBag`1 for an implementation with set semantics).
The comparer (sorting order) may be either natural, because the item type is comparable (generic: T:C5.IComparable`1 or non-generic: System.IComparable) or it can be external and supplied by the user in the constructor.
Each distinct item is only kept in one place in the tree - together with the number of times it is a member of the bag. Thus, if two items that are equal according
 CTreeDictionaryA sorted generic dictionary based on a red-black tree set.
 CTreeSetAn implementation of Red-Black trees as an indexed, sorted collection with set semantics, cf. CLRS. T:C5.TreeBag`1 for a version with bag semantics. T:C5.TreeDictionary`2 for a sorted dictionary based on this tree implementation. The comparer (sorting order) may be either natural, because the item type is comparable (generic: T:C5.IComparable`1 or non-generic: System.IComparable) or it can be external and supplied by the user in the constructor.
 CUnlistenableEventException
 CUnsequencedCollectionEqualityComparerPrototype for an unsequenced equalityComparer for something (T) that implements ICollection[W] This will use ICollection[W] specific implementations of the equalityComparer operations
 CViewDisposedExceptionAn exception thrown when trying to access a view (a list view on a T:C5.IList`1 or a snapshot on a T:C5.IPersistentSorted`1) that has been invalidated by some earlier operation
 CWeakViewListThis class is shared between the linked list and array list implementations.
 CWrappedArrayAn advanced interface to operations on an array. The array is viewed as an T:C5.IList`1 of fixed size, and so all operations that would change the size of the array will be invalid (and throw T:C5.FixedSizeCollectionException
 NSystem
 NCollections
 NGeneric
 CIReadOnlyCollectionRepresents a strongly-typed, read-only collection of elements. Enables System.Collections.Generic.IReadOnlyCollection to be used in .NET 4.5 projects
 CIReadOnlyListRepresents a read-only collection of elements that can be accessed by index. Enables System.Collections.Generic.IReadOnlyList to be used in .NET 4.5 projects