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

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

  •  09-06-2019
  •  | 
  •  

这个免费的馆藏图书馆来自哥本哈根信息技术大学。

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

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

有帮助吗?

解决方案

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

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

总而言之,这是一个非常好的库,具有一些高级数据结构。不幸的是,对它的支持非常缺乏,从新版本(错误修复等)的时间范围从 6 个月到一年不等这一事实可以看出。

笔记: 从 Mono 2.0 开始,C5 是 捆绑为第 3 方 API, ,我相信这是 Mono 团队对产品信心的精彩表现。

其他提示

我使用 C5 库已经有一段时间了,并且取得了很大的成功。我发现 C5 在接口编程方面提供了很大的好处。例如,在 System.Collections.Generic, , 这 IList 接口不提供所有功能 ArrayListLinkedList 实施。相反,在 C5 中,您可以访问 ArrayListLinkedList 只需持有一个 C5.IList.

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

此外,虽然有一段时间没有更新,C5 文档书是一个令人惊叹的资源,它提供了有关该库的清晰文档。

除了 omer van kloeten 的观点之外。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top