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

Definition

Ändert das aktuelle HashSet<T>-Objekt so, dass nur noch Elemente vorhanden sind, die entweder in diesem Objekt oder aber in der angegebenen Auflistung, nicht jedoch in beiden vorhanden sind.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))

Parameter

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

Die Auflistung, die mit dem aktuellen HashSet<T>-Objekt verglichen werden soll.The collection to compare to the current HashSet<T> object.

Implementiert

Ausnahmen

Beispiele

Im folgenden Beispiel werden zwei HashSet<T> Auflistungen mit überlappenden Datensätzen erstellt.The following example creates two HashSet<T> collections with overlapping sets of data. Der Satz, der die niedrigeren Werte enthält, wird dann mithilfe der SymmetricExceptWith -Methode geändert, sodass er nur die Werte enthält, die nicht in beiden Sätzen vorhanden sind.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.

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);

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

/* 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 }

Hinweise

Wenn der other -Parameter eine HashSet<T> Auflistung mit demselben Gleichheits Vergleich wie das aktuelle HashSet<T> -Objekt ist, ist diese Methode ein On()-Vorgang.If 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. Andernfalls ist diesenMethode ein O ( + m)-Vorgang, wobei n die Anzahl der Elemente in other und m Countgleich ist.Otherwise, this method is an O(n + m) operation, where n is the number of elements in other and m is Count.

Gilt für: