Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo HashSet<T>.IsProperSubsetOf (IEnumerable<T>)

 

Data di pubblicazione: ottobre 2016

Determina se un oggetto HashSet<T> è un subset corretto della raccolta specificata.

Spazio dei nomi:   System.Collections.Generic
Assembly:  System.Core (in System.Core.dll)

public bool IsProperSubsetOf(
	IEnumerable<T> other
)

Parametri

other
Type: System.Collections.Generic.IEnumerable<T>

Raccolta da confrontare con l'oggetto HashSet<T> corrente.

Valore restituito

Type: System.Boolean

true se l'oggetto HashSet<T> è un subset corretto di other; in caso contrario, false.

Exception Condition
ArgumentNullException

other è null.

Un set vuoto è un subset corretto di qualsiasi altra raccolta. Pertanto, questo metodo restituisce true Se la raccolta è rappresentata dall'oggetto corrente HashSet<T> oggetto è vuoto, a meno che il other parametro è anche un set vuoto.

Questo metodo restituisce sempre false Se Count è maggiore o uguale al numero di elementi in other.

Se la raccolta rappresentata da other è un HashSet<T> insieme con la stesso operatore di confronto di uguaglianza corrente HashSet<T> dell'oggetto, questo metodo è un'operazione O (n) operazione. In caso contrario, questo metodo è un'operazione O (n + m) operazione, in cui n è Count e m è il numero di elementi in other.

Nell'esempio seguente vengono create due diversi HashSet<T> gli oggetti che vengono quindi confrontati tra loro. In questo esempio, lowNumbers è un subset sia un subset corretto di allNumbers fino a quando non allNumbers viene modificato, tramite il IntersectWith (metodo), per contenere solo i valori presenti in entrambi i set. Una volta allNumbers e lowNumbers sono identiche, lowNumbers è ancora un sottoinsieme di allNumbers ma non è più un subset corretto.

static void Main()
{
    HashSet<int> lowNumbers = new HashSet<int>();
    HashSet<int> allNumbers = new HashSet<int>();

    for (int i = 1; i < 5; i++)
    {
        lowNumbers.Add(i);
    }

    for (int i = 0; i < 10; i++)
    {
        allNumbers.Add(i);
    }

    Console.Write("lowNumbers contains {0} elements: ", lowNumbers.Count);
    DisplaySet(lowNumbers);

    Console.Write("allNumbers contains {0} elements: ", allNumbers.Count);
    DisplaySet(allNumbers);

    Console.WriteLine("lowNumbers overlaps allNumbers: {0}",
        lowNumbers.Overlaps(allNumbers));

    Console.WriteLine("allNumbers and lowNumbers are equal sets: {0}",
        allNumbers.SetEquals(lowNumbers));

    // Show the results of sub/superset testing
    Console.WriteLine("lowNumbers is a subset of allNumbers: {0}",
        lowNumbers.IsSubsetOf(allNumbers));
    Console.WriteLine("allNumbers is a superset of lowNumbers: {0}",
        allNumbers.IsSupersetOf(lowNumbers));
    Console.WriteLine("lowNumbers is a proper subset of allNumbers: {0}",
        lowNumbers.IsProperSubsetOf(allNumbers));
    Console.WriteLine("allNumbers is a proper superset of lowNumbers: {0}",
        allNumbers.IsProperSupersetOf(lowNumbers));

    // Modify allNumbers to remove numbers that are not in lowNumbers.
    allNumbers.IntersectWith(lowNumbers);
    Console.Write("allNumbers contains {0} elements: ", allNumbers.Count);
    DisplaySet(allNumbers);

    Console.WriteLine("allNumbers and lowNumbers are equal sets: {0}",
        allNumbers.SetEquals(lowNumbers));

    // Show the results of sub/superset testing with the modified set.
    Console.WriteLine("lowNumbers is a subset of allNumbers: {0}",
        lowNumbers.IsSubsetOf(allNumbers));
    Console.WriteLine("allNumbers is a superset of lowNumbers: {0}",
        allNumbers.IsSupersetOf(lowNumbers));
    Console.WriteLine("lowNumbers is a proper subset of allNumbers: {0}",
        lowNumbers.IsProperSubsetOf(allNumbers));
    Console.WriteLine("allNumbers is a proper superset of lowNumbers: {0}",
        allNumbers.IsProperSupersetOf(lowNumbers));
}
/* This code example produces output similar to the following:
 * lowNumbers contains 4 elements: { 1 2 3 4 }
 * allNumbers contains 10 elements: { 0 1 2 3 4 5 6 7 8 9 }
 * lowNumbers overlaps allNumbers: True
 * allNumbers and lowNumbers are equal sets: False
 * lowNumbers is a subset of allNumbers: True
 * allNumbers is a superset of lowNumbers: True
 * lowNumbers is a proper subset of allNumbers: True
 * allNumbers is a proper superset of lowNumbers: True
 * allNumbers contains 4 elements: { 1 2 3 4 }
 * allNumbers and lowNumbers are equal sets: True
 * lowNumbers is a subset of allNumbers: True
 * allNumbers is a superset of lowNumbers: True
 * lowNumbers is a proper subset of allNumbers: False
 * allNumbers is a proper superset of lowNumbers: False
 */

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 3.5
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 4.0
Windows Phone Silverlight
Disponibile da 8.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: