HashSet<T>.SymmetricExceptWith(IEnumerable<T>) Yöntem

Tanım

Geçerli HashSet<T> nesneyi yalnızca söz konusu nesnede veya belirtilen koleksiyonda bulunan öğeleri içerecek şekilde değiştirir, ikisi birden değil.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:
 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))

Parametreler

other
IEnumerable<T>

Geçerli nesneyle Karşılaştırılacak koleksiyon HashSet<T> .The collection to compare to the current HashSet<T> object.

Uygulamalar

Öznitelikler

Özel durumlar

other, null değeridir.other is null.

Örnekler

Aşağıdaki örnek, HashSet<T> çakışan veri kümelerine sahip iki koleksiyon oluşturur.The following example creates two HashSet<T> collections with overlapping sets of data. Daha sonra bu değerleri içeren küme, yöntemi kullanılarak, SymmetricExceptWith yalnızca her iki küme içinde mevcut olmayan değerleri içerecek şekilde değiştirilir.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 }

Açıklamalar

Parametresi, other HashSet<T> geçerli nesneyle aynı eşitlik karşılaştırıcısı olan bir koleksiyondur HashSet<T> , bu yöntem bir O ( n ) işlemidir.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. Aksi takdirde, bu yöntem bir O ( n + m ) işlemidir; burada, n ve ' deki öğe sayısıdır 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.

Şunlara uygulanır