HashSet<T>.SymmetricExceptWith(IEnumerable<T>) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Memodifikasi objek saat ini HashSet<T> untuk hanya berisi elemen yang ada baik dalam objek tersebut atau dalam koleksi yang ditentukan, tetapi tidak keduanya.
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))
Parameter
- other
- IEnumerable<T>
Koleksi untuk dibandingkan dengan objek saat ini HashSet<T> .
Penerapan
- Atribut
Pengecualian
other
adalah null
.
Contoh
Contoh berikut membuat dua HashSet<T> koleksi dengan kumpulan data yang tumpang tindih. Set yang berisi nilai yang lebih rendah kemudian dimodifikasi, menggunakan SymmetricExceptWith metode , untuk hanya berisi nilai yang tidak ada di kedua set.
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 }
Keterangan
other
Jika parameter adalah HashSet<T> koleksi dengan perbandingan kesetaraan yang sama dengan objek saat iniHashSet<T>, metode ini adalah operasi O(n
). Jika tidak, metode ini adalah operasi O(n
+ m
), di mana n
adalah jumlah elemen di other
dan m
adalah .Count