C#中的HashSet是否具有等效的AddRange


Answers:


545

对于HashSet<T>,名称是UnionWith

这是为了表明工作的独特方式HashSet。您无法像那样安全地Add设置一组随机元素Collections,某些元素可能会自然蒸发。

我认为这UnionWith是在“与另一个合并HashSet” 之后得名的,但是,也有一个重载IEnumerable<T>


9
Imho HashSet(和ISet)是用数学上设定的术语创建的。UnionWith是最近的任期。从数学上来说Except,除了,显然应该将其命名为Subtract
fa wildchild 2015年

5

这是一种方法:

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;
    }
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.