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

Définition

Détermine si un objet HashSet<T> est un sous-ensemble de la collection spécifiée.Determines whether a HashSet<T> object is a subset of the specified collection.

public:
 virtual bool IsSubsetOf(System::Collections::Generic::IEnumerable<T> ^ other);
[System.Security.SecurityCritical]
public bool IsSubsetOf (System.Collections.Generic.IEnumerable<T> other);
abstract member IsSubsetOf : seq<'T> -> bool
override this.IsSubsetOf : seq<'T> -> bool
Public Function IsSubsetOf (other As IEnumerable(Of T)) As Boolean

Paramètres

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

Collection à comparer à l'objet HashSet<T> actif.The collection to compare to the current HashSet<T> object.

Retours

true si l'objet HashSet<T> est un sous-ensemble de other ; sinon, false.true if the HashSet<T> object is a subset of other; otherwise, false.

Implémente

Exceptions

Exemples

L’exemple suivant crée deux HashSet<T> objets disparates et les compare entre eux.The following example creates two disparate HashSet<T> objects and compares them to each other. Dans cet exemple, lowNumbers est un sous-ensemble et un sous- allNumbers ensemble allNumbers approprié de jusqu’à ce IntersectWith que soit modifié, à l’aide de la méthode, pour contenir uniquement les valeurs qui sont présentes dans les deux ensembles.In this example, lowNumbers is both a subset and a proper subset of allNumbers until allNumbers is modified, using the IntersectWith method, to contain only values that are present in both sets. Une allNumbers fois lowNumbers et sont identiques lowNumbers , est toujours un sous allNumbers -ensemble de, mais n’est plus un sous-ensemble approprié.Once allNumbers and lowNumbers are identical, lowNumbers is still a subset of allNumbers but is no longer a proper subset.

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
 */
Shared Sub Main()

    Dim lowNumbers As HashSet(Of Integer) = New HashSet(Of Integer)()
    Dim allNumbers As HashSet(Of Integer) = New HashSet(Of Integer)()

    For i As Integer = 1 To 4
        lowNumbers.Add(i)
    Next i

    For i As Integer = 0 To 9
        allNumbers.Add(i)
    Next 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))
End Sub
' 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

Remarques

Un ensemble vide est un sous-ensemble d’une autre collection, y compris un ensemble vide; par conséquent, cette méthode true retourne si la collection représentée par l' HashSet<T> objet actuel est vide, même si other le paramètre est un jeu vide.An empty set is a subset of any other collection, including an empty set; therefore, this method returns true if the collection represented by the current HashSet<T> object is empty, even if the other parameter is an empty set.

Cette méthode retourne false toujours si Count est supérieur au nombre d’éléments dans. otherThis method always returns false if Count is greater than the number of elements in other.

Si la collection représentée par other est une HashSet<T> collection avec le même comparateur d’égalité que HashSet<T> l’objet actuel, cette méthode est unenopération O ().If the collection represented by other is a HashSet<T> collection with the same equality comparer as the current HashSet<T> object, this method is an O(n) operation. Sinon, cette méthode est une opération On( n m + ), où est Count et m est le nombre d’éléments dans other.Otherwise, this method is an O(n + m) operation, where n is Count and m is the number of elements in other.

S’applique à