为什么HashSet上有一个Distinct()方法,当它们无法包含重复项时?
答案 0 :(得分:13)
Distinct
方法不在HashSet<>
上,而在IEnumerable<>
实现的HashSet<>
。
某些类型不能“省略”扩展方法。一旦添加到类型中,所有类型和任何派生类型都将获得扩展方法。
只是为了证明,如果你扩展了object
,那么如果你添加了相关的命名空间,你就会丢掉所有东西。所以不要添加:
namespace System
{
public static class ObjectExtensions
{
public static void Garbage(this object foo)
{
}
}
}