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

Определение

Определяет, является ли объект HashSet<T> надмножеством указанной коллекции.Determines whether a HashSet<T> object is a superset of the specified collection.

public:
 bool IsSupersetOf(System::Collections::Generic::IEnumerable<T> ^ other);
public bool IsSupersetOf (System.Collections.Generic.IEnumerable<T> other);
member this.IsSupersetOf : seq<'T> -> bool
Public Function IsSupersetOf (other As IEnumerable(Of T)) As Boolean

Параметры

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

Коллекция для сравнения с текущим объектом HashSet<T>.The collection to compare to the current HashSet<T> object.

Возвраты

Значение true, если объект HashSet<T> строгим надмножеством other; в противном случае — значение false.true if the HashSet<T> object is a superset of other; otherwise, false.

Реализации

Исключения

Свойство other имеет значение null.other is null.

Примеры

В следующем примере создаются два разнородных HashSet<T> объекта и сравниваются друг с другом.The following example creates two disparate HashSet<T> objects and compares them to each other. В этом примере allNumbers — это и супермножество, и правильное надмножество lowNumbers до allNumbers изменения, используя IntersectWith метод, чтобы содержать только значения, которые есть в обоих наборах.In this example, allNumbers is both a superset and a proper superset of lowNumbers until allNumbers is modified, using the IntersectWith method, to contain only values that are present in both sets. Однажды allNumbers allNumbers lowNumbers и lowNumbers идентичны, по-прежнему является надмножеством, но больше не является подмножеством.Once allNumbers and lowNumbers are identical, allNumbers is still a superset of lowNumbers but is no longer a proper superset.

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

Комментарии

Все коллекции, включая пустой набор, являются наборами пустых наборов.All collections, including the empty set, are supersets of the empty set. Поэтому этот метод возвращает true значение, если коллекция, представленная other параметром, пуста, даже если текущий HashSet<T> объект пуст.Therefore, this method returns true if the collection represented by the other parameter is empty, even if the current HashSet<T> object is empty.

Этот метод всегда возвращает false значение Count , если меньше числа элементов в other.This method always returns false if Count is less than the number of elements in other.

Если коллекция, представленная other , HashSet<T> является коллекцией с тем же компаратором равенства, что HashSet<T> и текущий объект, этот метод является операцией O (n).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. В противном случае этот метод является операцией O (n + m) n , где — число элементов в other и m имеет Countзначение.Otherwise, this method is an O(n + m) operation, where n is the number of elements in other and m is Count.

Применяется к