在.NET C#中设置操作

我正在研究与roughset相关的东西。 该项目使用了很多集合操作和操作。 我一直在使用字符串操作作为设置操作的停止间隔测量。 它一直工作正常,直到我们需要通过算法处理一些不合理数量的数据(500,000条记录,每条记录大约40多列)。

我知道.net 2.0中没有设置数据结构(2.0是我启动项目时的最新版本)我想知道是否有任何库在.net c#中提供快速设置操作,或者3.5是否添加了本机设置数据结构体。

谢谢 。

.NET 3.5已经具有本机集数据类型: HashSet 。 您可能还想查看操作的HashSet和LINQ集合运算符 。

在.NET 1.0中,有第三方Set数据类型: Iesi.Collections ,它使用.NET 2.0generics和Iesi.Collections.Generic进行了扩展。

您可能想尝试查看所有这些内容,看看哪个会对您有所帮助。 🙂

LINQ支持一些设置操作。 有关示例,请参见LINQ 101页面 。
还有一个类HashSet (.NET 3.5)


以下是Microsoft在.NET中设置操作的准则:

HashSet和LINQ集操作

HasSet类支持的集合操作列表:

HashSet集合类型

更新:这是针对.Net 2.0的。 对于.Net 3.5,请参考aku,Jon的post。

这是有效表示.Net中的集合的一个很好的参考。

可能值得一看C5 ,它是.NET的通用集合库,包括集合。

请注意,我没有多看,但它似乎是一个非常棒的collections库。

在.NET 3.5中尝试HashSet 。

这个来自.NET BCL团队成员的页面提供了有关HashSet意图的一些很好的信息

我一直在滥用.NET 2.0中的Dictionary类作为一个集合:

private object dummy = "ok"; public void Add(object el) { dict[el] = dummy; } public bool Contains(object el) { return dict.ContainsKey(el); } 

您可以在C#3.0中使用Linq to Objects。

你有没有想过唱F#? 这似乎是函数式编程语言的工作。

你应该看一下C5 Generic Collection Library 。 这个库是一种系统的方法,通过提供缺少的结构来修复.NET类库中的漏洞,以及用一组设计良好的接口和generics类替换现有的漏洞。

其中,有HashSet – 基于线性散列的genericsSet类。