HashSet<T>.ExceptWith(IEnumerable<T>) HashSet<T>.ExceptWith(IEnumerable<T>) HashSet<T>.ExceptWith(IEnumerable<T>) HashSet<T>.ExceptWith(IEnumerable<T>) Method

Definizione

Rimuove tutti gli elementi della raccolta specificata dall'oggetto HashSet<T>.Removes all elements in the specified collection from the current HashSet<T> object.

public:
 void ExceptWith(System::Collections::Generic::IEnumerable<T> ^ other);
public void ExceptWith (System.Collections.Generic.IEnumerable<T> other);
member this.ExceptWith : seq<'T> -> unit
Public Sub ExceptWith (other As IEnumerable(Of T))

Parametri

other
IEnumerable<T> IEnumerable<T> IEnumerable<T> IEnumerable<T>

Raccolta di elementi da rimuovere dall'oggetto HashSet<T>.The collection of items to remove from the HashSet<T> object.

Implementazioni

Eccezioni

Esempi

Nell'esempio seguente vengono create HashSet<T> due raccolte con set di dati sovrapposti.The following example creates two HashSet<T> collections with overlapping sets of data. L'intervallo di valori inferiore viene quindi rimosso dal set più grande usando il ExceptWith metodo.The lower range of values is then removed from the larger set using the ExceptWith method.

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 }

Commenti

Il ExceptWith metodo è l'equivalente della sottrazione dei set matematici.The ExceptWith method is the equivalent of mathematical set subtraction.

Questo metodo è un'operazione On(), dove n è il other numero di elementi nel parametro.This method is an O(n) operation, where n is the number of elements in the other parameter.

Si applica a