HashSet<T>.ExceptWith(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í.
Odebere všechny prvky v zadané kolekci z aktuálního HashSet<T> objektu.
public:
virtual void ExceptWith(System::Collections::Generic::IEnumerable<T> ^ other);
public:
void ExceptWith(System::Collections::Generic::IEnumerable<T> ^ other);
public void ExceptWith (System.Collections.Generic.IEnumerable<T> other);
abstract member ExceptWith : seq<'T> -> unit
override this.ExceptWith : seq<'T> -> unit
member this.ExceptWith : seq<'T> -> unit
Public Sub ExceptWith (other As IEnumerable(Of T))
Parametry
- other
- IEnumerable<T>
Kolekce položek, které se mají z objektu HashSet<T> odebrat.
Implementuje
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. Dolní rozsah hodnot se pak odebere z větší sady pomocí ExceptWith metody .
static void Main()
{
HashSet<int>^ lowNumbers = gcnew HashSet<int>();
HashSet<int>^ highNumbers = gcnew 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("highNumbers ExceptWith lowNumbers...");
highNumbers->ExceptWith(lowNumbers);
Console::Write("highNumbers contains {0} elements: ", highNumbers->Count);
DisplaySet(highNumbers);
}
/* 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 }
* highNumbers ExceptWith lowNumbers...
* highNumbers contains 4 elements: { 6 7 8 9 }
*/
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("highNumbers ExceptWith lowNumbers...");
highNumbers.ExceptWith(lowNumbers);
Console.Write("highNumbers contains {0} elements: ", highNumbers.Count);
DisplaySet(highNumbers);
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 }
* highNumbers ExceptWith lowNumbers...
* highNumbers contains 4 elements: { 6 7 8 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("highNumbers ExceptWith lowNumbers...")
highNumbers.ExceptWith(lowNumbers)
Console.Write("highNumbers contains {0} elements: ", highNumbers.Count)
DisplaySet(highNumbers)
End Sub
' 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 }
' highNumbers ExceptWith lowNumbers...
' highNumbers contains 4 elements: { 6 7 8 9 }
Poznámky
Metoda ExceptWith je ekvivalentem matematického odčítání množiny.
Tato metoda je operace O(n
), kde n
je počet prvků v parametru other
.