HashSet<T>.IsProperSupersetOf(IEnumerable<T>) Methode

Definition

Bestimmt, ob ein HashSet<T>-Objekt eine echte Obermenge der angegebenen Auflistung ist.Determines whether a HashSet<T> object is a proper superset of the specified collection.

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

Parameter

other
IEnumerable<T>

Die Auflistung, die mit dem aktuellen HashSet<T>-Objekt verglichen werden soll.The collection to compare to the current HashSet<T> object.

Gibt zurück

Boolean

true, wenn das HashSet<T>-Objekt eine echte Obermenge von other ist, andernfalls false.true if the HashSet<T> object is a proper superset of other; otherwise, false.

Implementiert

Attribute

Ausnahmen

other ist null.other is null.

Beispiele

Im folgenden Beispiel werden zwei unterschiedliche HashSet<T> -Objekte erstellt und miteinander verglichen.The following example creates two disparate HashSet<T> objects and compares them to each other. In diesem Beispiel allNumbers ist sowohl eine supermenge als auch eine ordnungsgemäße supermenge lowNumbers von allNumbers , bis mit der-Methode geändert wird, IntersectWith um nur die Werte zu enthalten, die in beiden Sätzen vorhanden sind.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. Sobald allNumbers und lowNumbers identisch sind, allNumbers ist immer noch eine supermenge von, lowNumbers aber keine ordnungsgemäße supermenge mehr.Once allNumbers and lowNumbers are identical, allNumbers is still a superset of lowNumbers but is no longer a proper superset.

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));

void DisplaySet(HashSet<int> set)
{
    Console.Write("{");
    foreach (int i in set)
    {
        Console.Write(" {0}", i);
    }
    Console.WriteLine(" }");
}

/* 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

Hinweise

Ein leerer Satz ist eine ordnungsgemäße supermenge einer anderen Auflistung.An empty set is a proper superset of any other collection. Daher gibt diese Methode zurück, true Wenn die durch den-Parameter dargestellte Auflistung other leer ist, es sei denn, die aktuelle Auflistung HashSet<T> ist ebenfalls leer.Therefore, this method returns true if the collection represented by the other parameter is empty unless the current HashSet<T> collection is also empty.

Diese Methode gibt immer false zurück Count , wenn kleiner oder gleich der Anzahl der Elemente in ist other .This method always returns false if Count is less than or equal to the number of elements in other.

Wenn die durch dargestellte Auflistung other eine Auflistung HashSet<T> mit demselben Gleichheits Vergleich wie das aktuelle- HashSet<T> Objekt ist, ist diese Methode ein O ( n )-Vorgang.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. Andernfalls ist diese Methode ein O ( n + m )-Vorgang, wobei n die Anzahl der Elemente in other und m Count gleich ist.Otherwise, this method is an O(n + m) operation, where n is the number of elements in other and m is Count.

Gilt für: