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

标签 c# hashset

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

最佳答案

Distinct方法不在HashSet<> ,但是 IEnumerable<>HashSet<> 实现.

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

只是为了演示,如果你扩展了object如果你添加了相关的命名空间,你会乱扔垃圾。所以不要去添加:

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

关于c# - 为什么 C# HashSets 有一个 Distinct() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10933851/

相关文章:

Java HashSet 使用自定义类作为键 : "contains()" function always return false

java - 调用 hashSet.clear() 后创建一个新的 HashSet 还是重用更好

java - 当找到多个集合的交集时,使用retainAll()的最快顺序

java - 整数哈希集

c# - or 表达式中的顺序是否有保证

c# - 为什么这个多余的逗号可以编译?

c# - 在 C# 列表中查找重复项的最快方法

c# - 查看有很多组件。多个模型对象?

c# - 邮件 C# 正文中的图像

c# - 如何找到缺少片段的字符串?