HashSet<T>.ExceptWith(IEnumerable<T>) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee verwijdert u alle elementen in de opgegeven verzameling uit het huidige HashSet<T> object.
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))
Parameters
- other
- IEnumerable<T>
De verzameling items die uit het HashSet<T> object moeten worden verwijderd.
Implementeringen
Uitzonderingen
other is null.
Voorbeelden
In het volgende voorbeeld worden twee HashSet<T> verzamelingen gemaakt met overlappende gegevenssets. Het lagere waardenbereik wordt vervolgens verwijderd uit de grotere set met behulp van de ExceptWith methode.
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 }
*/
let displaySet (set: HashSet<int>) =
printf "{"
for i in set do
printf $" {i}"
printfn " }"
let lowNumbers = HashSet<int>()
let highNumbers = HashSet<int>()
for i = 0 to 5 do
lowNumbers.Add i |> ignore
for i = 3 to 9 do
highNumbers.Add i |> ignore
printf $"lowNumbers contains {lowNumbers.Count} elements: "
displaySet lowNumbers
printf $"highNumbers contains {highNumbers.Count} elements: "
displaySet highNumbers
printfn "highNumbers ExceptWith lowNumbers..."
highNumbers.ExceptWith(lowNumbers)
printf $"highNumbers contains {highNumbers.Count} elements: "
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 }
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 }
Opmerkingen
De ExceptWith methode is het equivalent van aftrekken van wiskundige set.
Deze methode is een O(n)-bewerking, waarbij n het aantal elementen in de other parameter is.