Sunday, May 21, 2006

"The C5 Generic Collection Library for C# and CLI"

The C5 Generic Collection Library for C# and CLI

"C5 is a library of generic collection classes for C# and other CLI languages, as found in Microsoft .Net version 2.0 and Mono version 1.2.

C5 provides functionality and data structures not provided by the standard .Net System.Collections.Generic namespace, such as persistent tree data structures, heap based priority queues, hash indexed array lists and linked lists, and events on collection changes. Also, it is more comprehensive than collection class libraries on other similar platforms, such as Java. Unlike many other collection class libraries, C5 is designed with a strict policy of supporting "code to interface not implementation".
...
 
The C5 collection library provides the following data structures, described by C# classes: array list, doubly linked list, hash-indexed array list, hash-indexed linked list, hash set, hash bag (multiset), sorted array, wrapped array, tree set, tree bag (multiset), stack, double-ended queue, circular queue, priority queue (interval heap), hash dictionary, and tree dictionary.

...

The C5 collection library provides the following unusual functionality on collections and dictionaries: collection update events, multiple updatable list views, reversible enumeration, hash indexes on lists, snapshottable tree-based collections, priority queues with item handles, and in general a design with emphasis on orthogonality, flexibility, and preservation of invariants.

..."

This is another Generic collection library, kind of like Power Collections. My collection needs are usually very modest, but when I run into a need for a high powered collections, I sure don’t want to reinvent that wheel... Hence my interest in this.

C5 is from the IT University of Copenhagen and has an "academic feel" to it. Not a bad thing at all, just different from a OSS or commercial feel. In any case, it’s a very complete project (as you might expect) and includes extensive doc’s (both a 254 page PDF and HTML), nUnit tests, and released under a BSD like license ...

(via DotNetKicks - The C5 Generic Collection Library)

No comments: