.Net中是否有"Set"数据结构?

48 c# set data-structures

理想情况下,我正在寻找一个模板化的逻辑Set类.它将具有所有标准集合操作,例如Union,Intersection等,以及折叠重复项.

我最终基于C#Dictionary <>创建了自己的set类 - 只使用了Keys.

Mat*_*ton 44

HashSet<T> 我想,这是你最接近的.


Bra*_*ach 15

我见过的最佳设置实现是Wintellect的Power Collections的一部分:http: //www.codeplex.com/PowerCollections.

可以在此处找到集合实现:
http://www.codeplex.com/PowerCollections/SourceControl/FileView.aspx?itemId = 101886&changeSetId = 6259
它具有所有预期的设置操作(并集,交叉等).

希望这可以帮助!


Dal*_*gan 10

不,框架中没有一个原生的.大多数项目使用的开源实现(即nHibernate)称为Iesi.Collections.这是关于它的CodeProject文章:

http://www.codeproject.com/KB/recipes/sets.aspx


Ste*_*lin 9

你有没有检查过3.5中的HashSet


lom*_*axx 6

我不认为c#内置任何内容,但我知道网上有一些实现.关于这类事情还有一些好文章:

这是有效表示数据结构的系列文章的第6部分.本部分重点介绍C#中的集合.

一个实现一组收集的
一个实现一组类的
另一种实现一组类的

最后......

我实际上自己使用这个库作为我大约一年前做过的一组实现的基础.