【问题标题】:Is there a set type in .NET 2.0? [duplicate].NET 2.0 中有设置类型吗? [复制]
【发布时间】:2009-07-25 11:56:08
【问题描述】:

可能重复:
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 的

【问题讨论】:

    标签: .net generics .net-2.0 set


    【解决方案1】:

    直到 .NET3.5,没有(不要问我为什么要花这么长时间才能添加这些基础知识。(仍然没有堆类,afaik。.NET 集合类出奇地乏味)。

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

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

    我以前看过C5(按照 Pratik 的建议),但从未使用过。但它似乎质量很好,并且有一个 Set 类。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • +1 用于提及 .NET 2.0 集实现
      【解决方案3】:

      【讨论】:

        【解决方案4】:

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

        【讨论】:

        • 你打败了我!我删除了指向 Power Collections 的答案。我赞同 Abhijeet 认为 Power Collections 是您正在寻找的图书馆。
        【解决方案5】:

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

        【讨论】:

          【解决方案6】:

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

          【讨论】:

            猜你喜欢
            • 2011-05-22
            • 1970-01-01
            • 2010-09-19
            • 1970-01-01
            • 2019-05-28
            • 2018-02-18
            • 1970-01-01
            • 1970-01-01
            • 2011-12-15
            相关资源
            最近更新 更多