您是否会根据您的使用经验推荐使用“C#和CLI的C5通用集合库”?

时间:2008-09-06 13:05:24

标签: .net collections

这个免费的收藏库来自哥本哈根IT大学。

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

在第9频道上有一个作者的视频。我正在尝试学习如何使用这些集合,我想知道是否有人有更多的经验,或者你对这个特定的.NET集合库有什么想法。你喜欢它们的设计方式,你喜欢它们的性能以及它们的主要问题是什么?

3 个答案:

答案 0 :(得分:18)

我过去曾经使用它,我必须做几个注意事项:

  1. 图书馆非常好,非常快,非常实用。它有很多非常好的数据结构,其中一些在开始使用这个库之前我不知道。
  2. 它是开源的!这是一个巨大的好处。
  3. 有时你没有完全想要的东西。据我的经验表明,图书馆的作者决定采取一种非常不容忍的态度,抛出一切异常。这使我添加了一些容错方法。
  4. 总而言之,这是一个非常好的库,带有一些高级数据结构。不幸的是,对它的支持是非常缺乏的,正如你可以看到新版本(bugfixes等)的范围从6个月到一年不等。

    注意:从Mono 2.0开始,C5为bundled as a 3rd party API,我相信这是对Mono团队产品的一种精彩表现。

答案 1 :(得分:7)

我一直在使用C5库一段时间,并取得了很大的成功。我发现C5在编程接口方面提供了很大的好处。例如,在System.Collections.Generic中,IList接口不提供ArrayListLinkedList实现的所有功能。相反,在C5中,只需按住ArrayList即可访问LinkedListC5.IList的所有功能。

同样,原作者非常谨慎地记录了许多关键操作的渐近速度,例如集合计数,包含和索引。在集合之间执行操作时,库在内部使用这些属性,以确定哪个集合作为“actor”更快。

同样,虽然暂时没有更新,但C5文档手册是一个了不起的资源,可以提供有关库的清晰文档。

答案 2 :(得分:1)

除了omer van kloeten的观点。

开源许可证是MIT(与BSD许可证相当),这意味着如果您需要对库进行更改,则不必开源更改。 (这可能是一些公司的问题)。对于GPL类型的许可证,这可能是一个问题。