6

当 HashSet 无论如何都不能包含重复项时,为什么在 HashSet 上有一个可用的 Distinct() 方法?

4

1 回答 1

13

Distinct方法不是上的,HashSet<>而是IEnumerable<>那个实现的HashSet<>

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

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

namespace System
{
    public static class ObjectExtensions
    {
        public static void Garbage(this object foo)
        {
        }
    }
}
于 2012-06-07T14:30:20.653 回答