The C5 Generic Collection Library |
For C # and CLI |
https://github.com/sestoft/C5/
The C5 Generic Collection Library
C5 is a library of generic collection classes for C # and other CLI languages and works with Microsoft. Net version 2.0 and Later, and Mono version 2 and later.
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's more comprehensive than collection class libraries on other similar platforms, such as Java. Unlike many other collection class libraries, C5 are designed with a strict policy of supporting "code to Interface not IMP Lementation ".
News
- May : Version 2.0.0 released at Github and NuGet. This version have been updated to fit the new features of C # 3.0 and C # 4.0 and to is portable to WP7, Silverlight, Xbox an D Mono. It is not backwards compatible because eg. C5. Fun<r> have been replaced with system.func<r> and so on. There is a document describing the changes and rationale. Thanks to Rasmus ACNielsen at the IT University for the good work and to many users, not least Marcus Griep, for suggestions and contributions.
- December: Version 1.1.1 Released. Fixes the five bugs found since February 2008. See Release Notes 1.1.1.
- Ten February: Version 1.1.0 released. Adds implementation of some. NET Framework class Library interfaces and fixes the six bugs found since June 2007. See Release Notes 1.1. The book is about C5 have been updated also.
- 8 January: A video with an interview on C5 at MSDN Channel 9 (minutes).
- 1 July: Here's a article in Dr Dobb ' s Journal.
- May : Version 1.0.2 released. IT fixes the three bugs found since June 2006. See Release Notes 1.0.2.
- June 2006: Version 1.0.1 released. All known bugs (six) had been fixed, a feature requests accommodated, and the book had been updated. See Release Notes 1.0.1.
- January 2006: Version 1.0 released.
Downloads and Resources
- Get C5 version 2.0.0 from Github or NuGet.
- Download C5 binaries version 1.1.1:the C5.dll and c5.pdb files as a zip archive.
- Download C5 Source code version 1.1.1 and unit tests as a ZIP archive.
- Get The book describing C5:technical report itu-tr-2006-76 (268 pages):
- Download PDF
- Download PDF 2-up
- Download Postscript
- Download Postscript 2-up
- Get The book ' s examples as a zip file.
- A video with an interview on C5 at the MSDN Channel 9 (from January, minutes).
- Slides from a talk given at Microsoft Redmond, June 2004. (Much had changed since then).
Functionality
The C5 Collection library provides the following collection concepts, described by C # interfaces:directed Enumerable, Col Lection value, directed collection value, extensible collection, collection, sequenced collection, indexed collection, SOR Ted Collection, indexed sorted collection, persistent sorted collection, list, LIFO stack, FIFO queue, priority queue, DIC Tionary, and Sorted dictionary.
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.
See the relation between interfaces and classes for collections and for dictionaries.
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.
Authors, License and credits
The library is Copyright 2003-2006 Niels Kokholm and Peter Sestoft and are released under an Mit-style Open License (Simila R to a Bsd-style license).
It is based on the Gcollections library created by Peter Sestoft during he visit to Microsoft, Cambridge in 2001 . Niels Kokholm extended the library as a Master ' s thesis project at the IT University of Copenhagen, advised by Peter Sesto Ft. Subsequent completion of the library was financed on part by a grant from Microsoft University relations.
Bug reports, feedback and suggestions is welcome at [email protected] and [email protected].
The C5 Generic Collection Library for C # and CLI