有了列表,您可以执行以下操作:
list.AddRange(otherCollection);

HashSet中没有添加范围方法。
将另一个ICollection添加到HashSet的最佳方法是什么?

评论

谢谢您编辑我的答案,我可以请您帮忙吗?可以投票重新打开吗?

#1 楼

对于HashSet<T>,名称为UnionWith

这是为了指示HashSet的独特工作方式。您无法像Add那样安全地对一组随机元素进行Collections处理,某些元素可能自然蒸发。 UnionWith也是如此。

评论


Imho,HashSet(和ISet)是使用数学设置项创建的。 UnionWith是最近的名词。从数学上讲,Except除外,显然应将其命名为Subtract。

–fa wildchild
2015年1月7日,下午3:39

#2 楼

这是一种方法:

public static class Extensions
{
    public static bool AddRange<T>(this HashSet<T> source, IEnumerable<T> items)
    {
        bool allAdded = true;
        foreach (T item in items)
        {
            allAdded &= source.Add(item);
        }
        return allAdded;
    }
}