HashSet<T>.UnionWith(IEnumerable<T>) メソッド

定義

現在の HashSet<T> オブジェクトに変更を加えて、そのオブジェクト自身、指定されたコレクション、またはそれら両方に存在するすべての要素を格納するようにします。Modifies the current HashSet<T> object to contain all elements that are present in itself, the specified collection, or both.

public:
 virtual void UnionWith(System::Collections::Generic::IEnumerable<T> ^ other);
public:
 void UnionWith(System::Collections::Generic::IEnumerable<T> ^ other);
public void UnionWith (System.Collections.Generic.IEnumerable<T> other);
abstract member UnionWith : seq<'T> -> unit
override this.UnionWith : seq<'T> -> unit
member this.UnionWith : seq<'T> -> unit
Public Sub UnionWith (other As IEnumerable(Of T))

パラメーター

other
IEnumerable<T>

現在の HashSet<T> オブジェクトと比較するコレクション。The collection to compare to the current HashSet<T> object.

実装

例外

othernull です。other is null.

次の例では、2つの異なるセットをマージする方法を示します。The following example demonstrates how to merge two disparate sets. この例では、2つの HashSet<T> オブジェクトを作成し、それぞれ偶数と奇数を設定します。This example creates two HashSet<T> objects, and populates them with even and odd numbers, respectively. 3番目の HashSet<T> オブジェクトが、偶数を含むセットから作成されます。A third HashSet<T> object is created from the set that contains the even numbers. 次に、UnionWith メソッドを呼び出します。このメソッドは、奇数を3番目のセットに追加します。The example then calls the UnionWith method, which adds the odd number set to the third set.

HashSet<int> evenNumbers = new HashSet<int>();
HashSet<int> oddNumbers = new HashSet<int>();

for (int i = 0; i < 5; i++)
{
    // Populate numbers with just even numbers.
    evenNumbers.Add(i * 2);

    // Populate oddNumbers with just odd numbers.
    oddNumbers.Add((i * 2) + 1);
}

Console.Write("evenNumbers contains {0} elements: ", evenNumbers.Count);
DisplaySet(evenNumbers);

Console.Write("oddNumbers contains {0} elements: ", oddNumbers.Count);
DisplaySet(oddNumbers);

// Create a new HashSet populated with even numbers.
HashSet<int> numbers = new HashSet<int>(evenNumbers);
Console.WriteLine("numbers UnionWith oddNumbers...");
numbers.UnionWith(oddNumbers);

Console.Write("numbers contains {0} elements: ", numbers.Count);
DisplaySet(numbers);

void DisplaySet(HashSet<int> collection)
{
    Console.Write("{");
    foreach (int i in collection)
    {
        Console.Write(" {0}", i);
    }
    Console.WriteLine(" }");
}

/* This example produces output similar to the following:
* evenNumbers contains 5 elements: { 0 2 4 6 8 }
* oddNumbers contains 5 elements: { 1 3 5 7 9 }
* numbers UnionWith oddNumbers...
* numbers contains 10 elements: { 0 2 4 6 8 1 3 5 7 9 }
*/
Imports System.Collections.Generic

Class Program

    Shared Sub Main()

        Dim evenNumbers As HashSet(Of Integer) = New HashSet(Of Integer)()
        Dim oddNumbers As HashSet(Of Integer) = New HashSet(Of Integer)()

        For i As Integer = 0 To 4

            ' Populate evenNumbers with only even numbers.
            evenNumbers.Add(i * 2)

            ' Populate oddNumbers with only odd numbers.
            oddNumbers.Add((i * 2) + 1)
        Next i

        Console.Write("evenNumbers contains {0} elements: ", evenNumbers.Count)
        DisplaySet(evenNumbers)

        Console.Write("oddNumbers contains {0} elements: ", oddNumbers.Count)
        DisplaySet(oddNumbers)

        ' Create a new HashSet populated with even numbers.
        Dim numbers As HashSet(Of Integer) = New HashSet(Of Integer)(evenNumbers)
        Console.WriteLine("numbers UnionWith oddNumbers...")
        numbers.UnionWith(oddNumbers)

        Console.Write("numbers contains {0} elements: ", numbers.Count)
        DisplaySet(numbers)
    End Sub


    Private Shared Sub DisplaySet(ByVal collection As HashSet(Of Integer))
        Console.Write("{")
        For Each i As Integer In collection
            Console.Write(" {0}", i)
        Next i
        Console.WriteLine(" }")
    End Sub

End Class
' This example produces output similar to the following:
' evenNumbers contains 5 elements: { 0 2 4 6 8 }
' oddNumbers contains 5 elements: { 1 3 5 7 9 }
' numbers UnionWith oddNumbers...
' numbers contains 10 elements: { 0 2 4 6 8 1 3 5 7 9 }

注釈

このメソッドは O (n) 操作であり、nother パラメーター内の要素の数です。This method is an O(n) operation, where n is the number of elements in the other parameter.

適用対象