.NET 2.0中是否有一个集合类型?

时间:2009-07-25 11:56:08

标签: .net generics .net-2.0 set

  

可能重复:
  Is there a “Set” data structure in .Net?

重复:这是“Is there a “Set” data structure in .Net?”的副本。请将其作为副本关闭,并解决之前问题的任何进一步答案。

是否存在类似于.NET框架中的STL set<T>模板的泛型集合?

如果没有,您将如何实现非有序的唯一字符串集合?我想我可以使用Dictionary<string, int>并使用密钥,但这有点臭。

编辑:对不起,我应该指定这是针对.NET 2.0的

6 个答案:

答案 0 :(得分:8)

直到.NET3.5,没有(不要问我为什么花了这么长时间才能添加这些基础知识。(仍然没有堆类,afaik..NET集合类令人惊讶地低迷)。

在3.5中,您有HashSet<T>。它更像TR1 unordered_set而不是std::set,因为它是无序的,std::set在内部使用树结构。

当然,有几个第三方库可以解决这些缺点。

我之前看过C5(正如Pratik所建议的那样),但从未使用它。但它似乎质量非常好,并且有一个Set类。

答案 1 :(得分:4)

我可以建议The C5 Generic Collection Library具有哈希集合集合等等。

答案 2 :(得分:1)

答案 3 :(得分:1)

你的问题的答案是肯定的。 查看Jeff Richter令人惊叹的Power Collections库,了解一些最常用的.NET STL等效集合类型。在一个不相关的说明中,他还有一个Power Threading

答案 4 :(得分:0)

您可以查看HashSet<T>集合。

答案 5 :(得分:0)

从.net 3.5开始,有HashSet<T>实现了一个Set。不确定它是否完全等同于C ++的设置。