HashSet<T>.SymmetricExceptWith(IEnumerable<T>) HashSet<T>.SymmetricExceptWith(IEnumerable<T>) HashSet<T>.SymmetricExceptWith(IEnumerable<T>) HashSet<T>.SymmetricExceptWith(IEnumerable<T>) Method

Определение

Изменяет текущий объект HashSet<T>, чтобы он содержал только элементы, которые имеются либо в этом объекте, либо в указанной коллекции, но не одновременно в них обоих.Modifies the current HashSet<T> object to contain only elements that are present either in that object or in the specified collection, but not both.

public:
 void SymmetricExceptWith(System::Collections::Generic::IEnumerable<T> ^ other);
[System.Security.SecurityCritical]
public void SymmetricExceptWith (System.Collections.Generic.IEnumerable<T> other);
member this.SymmetricExceptWith : seq<'T> -> unit
Public Sub SymmetricExceptWith (other As IEnumerable(Of T))

Параметры

other
IEnumerable<T> IEnumerable<T> IEnumerable<T> IEnumerable<T>

Коллекция для сравнения с текущим объектом HashSet<T>.The collection to compare to the current HashSet<T> object.

Реализации

Исключения

Свойство other имеет значение null.other is null.

Примеры

В следующем примере создаются две HashSet<T> коллекции с перекрывающимися наборами данных.The following example creates two HashSet<T> collections with overlapping sets of data. Набор, содержащий меньшие значения, затем изменяется с помощью SymmetricExceptWith метода, чтобы содержать только значения, отсутствующие в обоих наборах.The set that contains the lower values is then modified, using the SymmetricExceptWith method, to contain only the values that are not present in both sets.

static void Main()
{
    HashSet<int> lowNumbers = new HashSet<int>();
    HashSet<int> highNumbers = new HashSet<int>();

    for (int i = 0; i < 6; i++)
    {
        lowNumbers.Add(i);
    }

    for (int i = 3; i < 10; i++)
    {
        highNumbers.Add(i);
    }

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

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

    Console.WriteLine("lowNumbers SymmetricExceptWith highNumbers...");
    lowNumbers.SymmetricExceptWith(highNumbers);

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



}
/* This example provides output similar to the following:
 * lowNumbers contains 6 elements: { 0 1 2 3 4 5 }
 * highNumbers contains 7 elements: { 3 4 5 6 7 8 9 }
 * lowNumbers SymmetricExceptWith highNumbers...
 * lowNumbers contains 7 elements: { 0 1 2 8 7 6 9 }
 */
Shared Sub Main()

    Dim lowNumbers As HashSet(Of Integer) = New HashSet(Of Integer)()
    Dim highNumbers As HashSet(Of Integer) = New HashSet(Of Integer)()

    For i As Integer = 0 To 5
        lowNumbers.Add(i)
    Next i

    For i As Integer = 3 To 9
        highNumbers.Add(i)
    Next i

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

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

    Console.WriteLine("lowNumbers SymmetricExceptWith highNumbers...")
    lowNumbers.SymmetricExceptWith(highNumbers)

    Console.Write("lowNumbers contains {0} elements: ", lowNumbers.Count)
    DisplaySet(lowNumbers)
End Sub
' This example produces output similar to the following:
' lowNumbers contains 6 elements: { 0 1 2 3 4 5 }
' highNumbers contains 7 elements: { 3 4 5 6 7 8 9 }
' lowNumbers SymmetricExceptWith highNumbers...
' lowNumbers contains 7 elements: { 0 1 2 8 7 6 9 }

Комментарии

Если параметр является коллекцией с тем же компаратором равенства, что и у HashSet<T> текущего объекта, этот метод является операциейnO (). HashSet<T> otherIf the other parameter is a HashSet<T> collection with the same equality comparer as the current HashSet<T> object, this method is an O(n) operation. В противном случае этот метод является операцией O (n + m) n , где — число элементов в other и m имеет Countзначение.Otherwise, this method is an O(n + m) operation, where n is the number of elements in other and m is Count.

Применяется к