21

这个免费的馆藏图书馆来自哥本哈根 IT 大学。

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

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

4

3 回答 3

18

我过去使用过它,我必须做一些笔记:

  1. 该库非常好,非常快且非常有用。它有很多非常好的数据结构,其中一些我在开始使用这个库之前并不知道。
  2. 它是开源的!这是一个巨大的好处。
  3. 有时你没有你想要的。就我的经验而言,图书馆的作者决定采取一种非常容错的态度,对所有事情都抛出异常。这导致我添加了一些容错方法。

总而言之,一个非常不错的库,带有一些高级数据结构。不幸的是,对它的支持非常缺乏,正如您可以从新版本(错误修复等)的范围从 6 个月到一年的事实中看到的那样。

注意:从 Mono 2.0 开始,C5 被捆绑为一个 3rd 方 API,我相信这是 Mono 团队对产品的一种极好的表现。

于 2008-09-07T07:51:41.273 回答
7

我已经使用 C5 库有一段时间了,并且取得了很大的成功。我发现 C5 在编程接口方面提供了很大的好处。例如,在 中System.Collections.GenericIList接口不提供ArrayListLinkedList实现的所有功能。相反,在 C5 中,您可以通过按住来访问ArrayListand的所有功能。LinkedListC5.IList

同样,原作者非常注意记录许多关键操作的渐近速度,例如集合计数、包含和索引。当在集合之间进行操作时,库在内部使用这些属性来确定哪个集合作为“参与者”会更快。

同样,虽然有一段时间没有更新,但 C5 文档书是一个了不起的资源,它提供了关于库的清晰文档。

于 2008-10-16T16:46:32.753 回答
1

除了 omer van kloeten 的观点。

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

于 2008-09-07T12:34:41.903 回答