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.

CC5.ArrayList< Position >  
CC5.CollectionValueBase< K >  
►CCollectionValueBase< KeyValuePair< K, V >>  
►CC5.DictionaryBase< K, V >  A base class for implementing a dictionary based on a set collection implementation. See the source code for T:C5.HashDictionary`2 for an example 
CC5.HashDictionary< K, V >  A generic dictionary class based on a hash set class T:C5.HashSet`1. 
►CC5.SortedDictionaryBase< K, V >  A 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 
CC5.SortedArrayDictionary< K, V >  
CC5.TreeDictionary< K, V >  A sorted generic dictionary based on a redblack tree set. 
►CC5.CollectionValueBase< V >  
CC5.MappedCollectionValue< T, V >  
CC5.ComparerFactory< T >  Factory class to create comparers and equality comparers using Func delegates 
►CC5.DirectedCollectionValueBase< V >  
CC5.MappedDirectedCollectionValue< T, V >  
►CC5.EnumerableBase< V >  
CC5.MappedDirectedEnumerable< T, V >  
►CEventArgs  
►CC5.ClearedEventArgs  
CC5.ClearedRangeEventArgs  
CC5.ItemAtEventArgs< T >  
CC5.ItemCountEventArgs< T >  
►CException  
CC5.CollectionModifiedException  An exception thrown by enumerators, range views etc. when accessed after the underlying collection has been modified. 
CC5.DuplicateNotAllowedException  An 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 
CC5.FixedSizeCollectionException  
CC5.IncompatibleViewException  An exception thrown by operations on a list that expects an argument that is a view on the same underlying list. 
CC5.InternalException  An exception to throw from library code when an internal inconsistency is encountered. 
CC5.InvalidPriorityQueueHandleException  
CC5.NoSuchItemException  An 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 
CC5.NotAViewException  An exception thrown by an operation on a list (T:C5.IList`1) that only makes sense for a view, not for an underlying list. 
CC5.NotComparableException  An exception thrown by an operation that need to construct a natural comparer for a type. 
CC5.ReadOnlyCollectionException  An exception thrown by an update operation on a ReadOnly collection or dictionary 
CC5.UnlistenableEventException  
CC5.ViewDisposedException  An 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 
►CGuardedCollectionValue< KeyValuePair< K, V >>  
►CC5.GuardedDictionary< K, V >  A readonly wrapper for a dictionary 
CC5.GuardedSortedDictionary< K, V >  A readonly wrapper for a sorted dictionary 
CC5.HashDictionary< T, Node >  
CC5.HashedArrayList< Position >  
CC5.HashSet< C5.KeyValuePair< T, int > >  
►CICollection  
►CC5.ICollection< T >  The simplest interface of a main stream generic collection with lookup, insertion and removal operations. 
►CC5.GuardedCollection< T >  A readonly wrapper for an T:C5.ICollection`1, 
►CC5.GuardedSequenced< T >  A readonly wrapper for a sequenced collection 
CC5.GuardedList< T >  A readonly 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. 
►CC5.GuardedSorted< T >  A readonly wrapper for a sorted collection 
CC5.GuardedIndexedSorted< T >  Readonly wrapper for indexed sorted collections 
CC5.HashBag< T >  A bag collection based on a hash table of (item,count) pairs. 
CC5.HashSet< T >  A set collection class based on linear hashing 
►CC5.ISequenced< T >  An editable collection maintaining a definite sequence order of the items 
CC5.GuardedSequenced< T >  A readonly wrapper for a sequenced collection 
►CC5.IIndexed< T >  A sequenced collection, where indices of items in the order are maintained 
►CC5.IIndexedSorted< T >  A collection where items are maintained in sorted order together with their indexes in that order. 
CC5.GuardedIndexedSorted< T >  Readonly wrapper for indexed sorted collections 
CC5.SortedArray< T >  A collection class implementing a sorted dynamic array data structure. 
CC5.TreeBag< T >  An implementation of RedBlack 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 nongeneric: 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 
CC5.TreeSet< T >  An implementation of RedBlack 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 nongeneric: System.IComparable) or it can be external and supplied by the user in the constructor. 
►CC5.IList< T >  This is an indexed collection, where the item order is chosen by the user at insertion time 
CC5.ArrayList< T >  A 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 
CC5.GuardedList< T >  A readonly 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. 
CC5.HashedArrayList< T >  A 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 
CC5.HashedLinkedList< T >  A list collection class based on a doubly linked list data structure. 
CC5.LinkedList< T >  A list collection class based on a doubly linked list data structure. 
CC5.WrappedArray< T >  An 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 
►CC5.ISorted< T >  A 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 
CC5.GuardedSorted< T >  A readonly wrapper for a sorted collection 
CC5.IIndexedSorted< T >  A collection where items are maintained in sorted order together with their indexes in that order. 
►CC5.IPersistentSorted< T >  The type of a sorted collection with persistence 
CC5.TreeBag< T >  An implementation of RedBlack 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 nongeneric: 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 
CC5.TreeSet< T >  An implementation of RedBlack 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 nongeneric: System.IComparable) or it can be external and supplied by the user in the constructor. 
CC5.ICollection< C5.KeyValuePair< K, V > >  
CC5.ICollectionValue< K >  
►CICollectionValue< KeyValuePair< K, V >>  
►CC5.IDictionary< K, V >  A dictionary with keys of type K and values of type V. Equivalent to a finite partial map from K to V. 
CC5.DictionaryBase< K, V >  A base class for implementing a dictionary based on a set collection implementation. See the source code for T:C5.HashDictionary`2 for an example 
CC5.GuardedDictionary< K, V >  A readonly wrapper for a dictionary 
CC5.HashDictionary< K, V >  A generic dictionary class based on a hash set class T:C5.HashSet`1. 
►CC5.ISortedDictionary< K, V >  A dictionary with sorted keys. 
CC5.GuardedSortedDictionary< K, V >  A readonly wrapper for a sorted dictionary 
CC5.SortedDictionaryBase< K, V >  A 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 
CC5.TreeDictionary< K, V >  A sorted generic dictionary based on a redblack tree set. 
CC5.TreeDictionary< K, V >  A sorted generic dictionary based on a redblack tree set. 
►CC5.ICollectionValue< V >  
CC5.MappedCollectionValue< T, V >  
►CIComparer< KeyValuePair< K, V >>  
CC5.KeyValuePairComparer< K, V >  Default comparer for dictionary entries in a sorted dictionary. Entry comparisons only look at keys and uses an externally defined comparer for that. 
►CC5.IDirectedCollectionValue< V >  
CC5.MappedDirectedCollectionValue< T, V >  
►CC5.IDirectedEnumerable< V >  
CC5.MappedDirectedEnumerable< T, V >  
►CIDisposable  
CC5.IList< T >  This is an indexed collection, where the item order is chosen by the user at insertion time 
CC5.IPersistentSorted< T >  The type of a sorted collection with persistence 
►CIEnumerable  
►CC5.EnumerableBase< T >  A base class for implementing an IEnumerable<T> 
►CC5.CollectionValueBase< T >  Base class for classes implementing ICollectionValue[T] 
►CC5.CollectionBase< T >  Base class (abstract) for ICollection implementations. 
►CC5.DirectedCollectionBase< T >  
►CC5.SequencedBase< T >  Base class (abstract) for sequenced collection implementations. 
►CC5.ArrayBase< T >  Base class for collection classes of dynamic array type implementations. 
CC5.ArrayList< T >  A 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 
CC5.HashedArrayList< T >  A 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 
CC5.SortedArray< T >  A collection class implementing a sorted dynamic array data structure. 
CC5.CircularQueue< T >  
CC5.HashedLinkedList< T >  A list collection class based on a doubly linked list data structure. 
CC5.LinkedList< T >  A list collection class based on a doubly linked list data structure. 
CC5.TreeBag< T >  An implementation of RedBlack 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 nongeneric: 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 
CC5.TreeSet< T >  An implementation of RedBlack 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 nongeneric: System.IComparable) or it can be external and supplied by the user in the constructor. 
CC5.HashBag< T >  A bag collection based on a hash table of (item,count) pairs. 
CC5.HashSet< T >  A set collection class based on linear hashing 
►CC5.DirectedCollectionValueBase< T >  
CC5.ArrayBase< T >.Range  A helper class for defining results of interval queries on array based collections. 
CC5.IntervalHeap< T >  A priority queue class based on an interval heap data structure. 
►CC5.GuardedEnumerable< T >  A readonly wrapper class for a generic enumerable 
►CC5.GuardedCollectionValue< T >  A readonly wrapper for an ICollectionValue<T> 
CC5.GuardedCollection< T >  A readonly wrapper for an T:C5.ICollection`1, 
►CC5.GuardedDirectedCollectionValue< T >  A readonly wrapper for a directed collection 
CC5.GuardedQueue< T >  A readonly wrapper for a generic indexable queue (allows indexing) 
CC5.GuardedDirectedEnumerable< T >  A readonly wrapper for a generic directed enumerable 
►CC5.ICollectionValue< T >  A generic collection that may be enumerated and can answer efficiently how many items it contains. Like 
CC5.CollectionValueBase< T >  Base class for classes implementing ICollectionValue[T] 
CC5.GuardedCollectionValue< T >  A readonly wrapper for an ICollectionValue<T> 
►CC5.IDirectedCollectionValue< T >  A sized generic collection, that can be enumerated backwards. 
CC5.ArrayBase< T >.Range  A helper class for defining results of interval queries on array based collections. 
CC5.DirectedCollectionBase< T >  
CC5.DirectedCollectionValueBase< T >  
CC5.GuardedDirectedCollectionValue< T >  A readonly wrapper for a directed collection 
►CC5.IQueue< T >  The interface describing the operations of a FIFO queue data structure. 
CC5.ArrayList< T >  A 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 
CC5.CircularQueue< T >  
CC5.GuardedQueue< T >  A readonly wrapper for a generic indexable queue (allows indexing) 
CC5.LinkedList< T >  A list collection class based on a doubly linked list data structure. 
CC5.ISequenced< T >  An editable collection maintaining a definite sequence order of the items 
►CC5.IStack< T >  The interface describing the operations of a LIFO stack data structure. 
CC5.ArrayList< T >  A 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 
CC5.CircularQueue< T >  
CC5.LinkedList< T >  A list collection class based on a doubly linked list data structure. 
CC5.SequencedBase< T >  Base class (abstract) for sequenced collection implementations. 
►CC5.IExtensible< T >  A 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. 
CC5.ICollection< T >  The simplest interface of a main stream generic collection with lookup, insertion and removal operations. 
►CC5.IPriorityQueue< T >  A generic collection of items prioritized by a comparison (order) relation. Supports adding items and reporting or removing extremal elements 
CC5.IntervalHeap< T >  A priority queue class based on an interval heap data structure. 
►CC5.IDirectedEnumerable< T >  A generic collection, that can be enumerated backwards. 
CC5.GuardedDirectedEnumerable< T >  A readonly wrapper for a generic directed enumerable 
CC5.IDirectedCollectionValue< T >  A sized generic collection, that can be enumerated backwards. 
CSystem.Collections.Generic.IReadOnlyCollection< out out T >  Represents a stronglytyped, readonly collection of elements. Enables System.Collections.Generic.IReadOnlyCollection to be used in .NET 4.5 projects 
CSystem.Collections.Generic.IReadOnlyCollection< out out T >  Represents a stronglytyped, readonly collection of elements. Enables System.Collections.Generic.IReadOnlyCollection to be used in .NET 4.5 projects 
CSystem.Collections.Generic.IReadOnlyList< out out T >  Represents a readonly collection of elements that can be accessed by index. Enables System.Collections.Generic.IReadOnlyList to be used in .NET 4.5 projects 
CSystem.Collections.Generic.IReadOnlyList< out out T >  Represents a readonly collection of elements that can be accessed by index. Enables System.Collections.Generic.IReadOnlyList to be used in .NET 4.5 projects 
►CIEnumerator  
CC5.GuardedEnumerator< T >  A readonly wrapper class for a generic enumerator 
►CIEqualityComparer  
CC5.SequencedCollectionEqualityComparer< T, W >  Prototype for a sequenced equalityComparer for something (T) that implements ISequenced[W]. This will use ISequenced[W] specific implementations of the equality comparer operations. 
CC5.UnsequencedCollectionEqualityComparer< T, W >  Prototype for an unsequenced equalityComparer for something (T) that implements ICollection[W] This will use ICollection[W] specific implementations of the equalityComparer operations 
►CIEqualityComparer< KeyValuePair< K, V >>  
CC5.KeyValuePairEqualityComparer< K, V >  Default equalityComparer for dictionary entries. Operations only look at keys and uses an externally defined equalityComparer for that. 
►CIEquatable< KeyValuePair< K, V >>  
CC5.KeyValuePair< K, V >  An entry in a dictionary from K to V. 
►CIEquatable< Rec< T1, T2 >>  
CC5.Rec< T1, T2, T3, T4 >  
►CIEquatable< Rec< T1, T2, T3 >>  
CC5.Rec< T1, T2, T3, T4 >  
►CIEquatable< Rec< T1, T2, T3, T4 >>  
CC5.Rec< T1, T2, T3, T4 >  
►CIFormattable  
►CC5.IShowable  (Describe usage of "L:300" format string.) 
CC5.CollectionValueBase< T >  Base class for classes implementing ICollectionValue[T] 
CC5.ICollectionValue< T >  A generic collection that may be enumerated and can answer efficiently how many items it contains. Like 
CC5.KeyValuePair< K, V >  An entry in a dictionary from K to V. 
CC5.Rec< T1, T2, T3, T4 >  
CC5.Rec< T1, T2, T3, T4 >  
CC5.Rec< T1, T2, T3, T4 >  
►CIList  
CC5.GuardedList< T >  A readonly 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. 
CC5.HashedArrayList< T >  A 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 
CC5.HashedLinkedList< T >  A list collection class based on a doubly linked list data structure. 
CC5.IList< T >  This is an indexed collection, where the item order is chosen by the user at insertion time 
CC5.WrappedArray< T >  An 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 
►CIList  
CC5.IList< T >  This is an indexed collection, where the item order is chosen by the user at insertion time 
CC5.IPriorityQueueHandle< T >  The base type of a priority queue handle 
►CSystem.Collections.Generic.IReadOnlyCollection< T >  
CSystem.Collections.Generic.IReadOnlyList< out out T >  Represents a readonly collection of elements that can be accessed by index. Enables System.Collections.Generic.IReadOnlyList to be used in .NET 4.5 projects 
►CIReadOnlyList  
CC5.IIndexed< T >  A sequenced collection, where indices of items in the order are maintained 
CC5.ISorted< C5.KeyValuePair< K, V > >  
CC5.ISorted< K >  
►CMappedCollectionValue< K, KeyValuePair< K, int >>  
CC5.MultiplicityOne< K >  
►CC5.MappedCollectionValue< KeyValuePair< K, int >, K >  
CC5.DropMultiplicity< K >  
CC5.MappedDirectedCollectionValue< KeyValuePair< K, V >, K >  
CC5.MappedDirectedEnumerable< KeyValuePair< K, V >, K >  
CC5.CollectionValueBase< T >.RaiseForRemoveAllHandler  
►CRandom  
CC5.C5Random  A modern random number generator based on G. Marsaglia: Seeds for Random Number Generators, Communications of the ACM 46, 5 (May 2003) 9093; and a posting by Marsaglia to comp.lang.c on 20030403. 
CC5.Rec< T1, T2 >  A generic record type with two fields 
CC5.Rec< T1, T2, T3 >  
CC5.RecConst  
CC5.SequencedBase< K >  
CC5.Sorting  A utility class with functions for sorting arrays with respect to an IComparer<T> 
CC5.WeakViewList< V >  This class is shared between the linked list and array list implementations. 
CC5.WeakViewList< C5.ArrayList< T > >  
CC5.WeakViewList< C5.HashedArrayList< T > >  
CC5.WeakViewList< C5.HashedLinkedList< T > >  
CC5.WeakViewList< C5.LinkedList< T > > 