C#のHashSetに相当するAddRangeはありますか


回答:


547

以下のためにHashSet<T>、名前がありますUnionWith

これは、HashSet作業の明確な方法を示すためです。のAddようにランダムな要素のセットを安全に設定することはできませんCollections。一部の要素は自然に蒸発する場合があります。

それUnionWithは「別のものとマージする」にちなんでその名前が付けられたと思いますがHashSet、それでも過負荷がありIEnumerable<T>ます。


9
Imho HashSet(およびISet)は、数学的に設定された項で作成されました。UnionWith近い時期でした。を除いてExcept、これSubtractは数学的に言えばと名前を付ける必要があります。
faワイルドチャイルド2015年

5

これは1つの方法です。

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;
    }
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.