HashSet<T>.SymmetricExceptWith(IEnumerable<T>) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Upraví aktuální HashSet<T> objekt tak, aby obsahoval pouze prvky, které jsou přítomny buď v daném objektu, nebo v zadané kolekci, ale ne v obou.
public:
virtual void SymmetricExceptWith(System::Collections::Generic::IEnumerable<T> ^ other);
public:
void SymmetricExceptWith(System::Collections::Generic::IEnumerable<T> ^ other);
public void SymmetricExceptWith (System.Collections.Generic.IEnumerable<T> other);
[System.Security.SecurityCritical]
public void SymmetricExceptWith (System.Collections.Generic.IEnumerable<T> other);
abstract member SymmetricExceptWith : seq<'T> -> unit
override this.SymmetricExceptWith : seq<'T> -> unit
[<System.Security.SecurityCritical>]
member this.SymmetricExceptWith : seq<'T> -> unit
[<System.Security.SecurityCritical>]
abstract member SymmetricExceptWith : seq<'T> -> unit
override this.SymmetricExceptWith : seq<'T> -> unit
Public Sub SymmetricExceptWith (other As IEnumerable(Of T))
Parametry
- other
- IEnumerable<T>
Kolekce pro porovnání s aktuálním HashSet<T> objektem.
Implementuje
- Atributy
Výjimky
other
je null
.
Příklady
Následující příklad vytvoří dvě HashSet<T> kolekce s překrývajícími se sadami dat. Sada, která obsahuje nižší hodnoty, SymmetricExceptWith se pak pomocí metody upraví tak, aby obsahovala pouze hodnoty, které nejsou přítomny v obou sadách.
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 }
Poznámky
other
Pokud je HashSet<T> parametr kolekce se stejným porovnávačem rovnosti jako aktuální HashSet<T> objekt, tato metoda je operace O(n
). Jinak je tato metoda operací O(n
+ m
), kde n
je počet prvků v other
a m
je .Count