根据经验,我们是否建议使用"用于C#和CLI的C5通用集合库"?

时间:2020-03-05 18:48:41  来源:igfitidea点击:

该免费馆藏库来自哥本哈根IT大学。

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

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

解决方案

回答

我过去曾经使用过它,但我必须做一些注意事项:

  • 该库非常好,非常快并且非常有用。它有很多非常好的数据结构,其中一些在开始使用该库之前我还不知道。
  • 它是开源的!这是一个巨大的好处。
  • 有时我们并没有想要的东西。据我的经验显示,图书馆的作者决定以非常挑剔的态度走下去,对所有事情都抛出了例外。这使我添加了一些容错方法。

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

注意:从Mono 2.0开始,C5被捆绑为第三方API,我相信这是对Mono团队对产品的信念的完美展​​现。

回答

除了那个奥尼尔·范·克洛滕的观点。

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

回答

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

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

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