C#:字典值到哈希集的转换

标签 c# dictionary hashset

请建议最短的转换方式Dictionary<Key, Value>Hashset<Value>

是否有用于 IEnumerables 的内置 ToHashset() LINQ 扩展?

提前致谢!

最佳答案

var yourSet = new HashSet<TValue>(yourDictionary.Values);

或者,如果您愿意,您可以编写自己的简单扩展方法来处理类型推断。那么你就不需要明确指定 THashSet<T> :

var yourSet = yourDictionary.Values.ToHashSet();

// ...

public static class EnumerableExtensions
{
    public static HashSet<T> ToHashSet<T>(this IEnumerable<T> source)
    {
        return source.ToHashSet<T>(null);
    }

    public static HashSet<T> ToHashSet<T>(
        this IEnumerable<T> source, IEqualityComparer<T> comparer)
    {
        if (source == null) throw new ArgumentNullException("source");

        return new HashSet<T>(source, comparer);
    }
}

关于C#:字典值到哈希集的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3180030/

相关文章:

java - 如何计算两组的交集?

c# - 创建运行时确定类型实例的最佳方法

c# - 受密码保护的 SQLite 数据库

python - 基于深度信息的多级dict字典列表

Java 如何获取特定键内的所有映射值?

javascript - OpenLayers 可移动标记

java - 使用 bufferedread 和 hashset 检查文件中的行

algorithm - 将列表复制到 HashSet 的算法的空间复杂度

c# - VS 2017 添加 > Docker 支持中断构建 - "CleanWorkspace"任务意外失败(控制台应用程序)

c# - 在 C# 中查找数组中的对象模式