Would you recommend using “The C5 Generic Collection Library for C# and CLI” based on your experience with it?

StackOverflow https://stackoverflow.com/questions/47432

  •  09-06-2019
  •  | 
  •  

Question

This free collection library comes from IT University of Copenhagen.

http://www.itu.dk/research/c5/

There is a video with one of the authors on Channel 9. I am trying to learn how to use these collections and I was wondering whether anyone has more experiences or what are your thoughts on this specific collection library for .NET. Do you like the way they are designed, do you like their performance and what were your major problems with them ?

Was it helpful?

Solution

I've used it in the past and there are a couple of notes I must make:

  1. The library is very good, very fast and very useful. It has lots of very nice data structures, some of which I did not know before starting to use this library.
  2. It's Open-Source! This is a huge benefit.
  3. Sometimes you don't have exactly what you want. As far as my experience showed, the library's authors decided to go with a very fault-intolerant attitude, throwing exceptions about everything. This caused me to add a few fault-tolerant methods.

All in all, a very nice library with some advanced data structures. Unfortunately, support for it is very lacking, as you can see from the fact that new releases (bugfixes, et al) range somewhere from 6 months to a year.

Note: Starting with Mono 2.0, C5 is bundled as a 3rd party API, which I believe to be a wonderful show of faith in the product from the Mono team.

OTHER TIPS

I have been using the C5 library for a while now, and with much success. I find that C5 offers great benefit in programming to interface. For example, in System.Collections.Generic, the IList interface doesn't offer all of the functionality of the ArrayList and LinkedList implementations. Conversely, in C5, you can access all the functionality of the ArrayList and LinkedList just by holding a C5.IList.

As well, the original authors took much care to document the asymptotic speed of many critical operations, such as collection count, contains, and indexing. The library internally uses these properties when doing operations between collections to determine which collection would be faster as the "actor".

As well, while not updated in a while, the C5 documentation book is an amazing resource that provides clear documentation on the library.

In addition to that omer van kloeten's points.

The open source licence is MIT (comparable to BSD licence) this means that if you need make changes to the library you don't have to open-source the changes. (this might be a problem with some companies). For GPL-type licences this can be a problem.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top