为什么C#HashSets有一个Distinct()方法

时间:2012-06-07 14:28:54

标签: c# hashset

为什么HashSet上有一个Distinct()方法,当它们无法包含重复项时?

1 个答案:

答案 0 :(得分:13)

Distinct方法不在HashSet<>上,而在IEnumerable<>实现的HashSet<>

某些类型不能“省略”扩展方法。一旦添加到类型中,所有类型和任何派生类型都将获得扩展方法。

只是为了证明,如果你扩展了object,那么如果你添加了相关的命名空间,你就会丢掉所有东西。所以不要添加:

namespace System
{
    public static class ObjectExtensions
    {
        public static void Garbage(this object foo)
        {
        }
    }
}