关于集合:C#中是否有与哈希集等效的addrange

Is there an AddRange equivalent for a HashSet in C#

通过列表,您可以执行以下操作:

1
list.AddRange(otherCollection);

哈希集中没有add range方法。向哈希集添加另一个集合的最佳方法是什么?


对于HashSet,名称为UnionWith

这是为了表明HashSet的独特工作方式。你不能像在Collections中那样,安全地将一组随机元素输入它,有些元素可能会自然蒸发。

我认为UnionWith是以"与另一个HashSet合并"而命名的,但是,IEnumerable也有超载现象。


这是一种方法:

1
2
3
4
5
6
7
8
9
10
11
12
public static class Extensions
{
    public static bool AddRange<T>(this HashSet<T> @this, IEnumerable<T> items)
    {
        bool allAdded = true;
        foreach (T item in items)
        {
            allAdded &= @this.Add(item);
        }
        return allAdded;
    }
}