重复:这是“Is there a “Set” data structure in .Net?”的副本。请将其作为副本关闭,并解决之前问题的任何进一步答案。
是否存在类似于.NET框架中的STL set<T>
模板的泛型集合?
如果没有,您将如何实现非有序的唯一字符串集合?我想我可以使用Dictionary<string, int>
并使用密钥,但这有点臭。
答案 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 ++的设置。