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

Definition

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

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

Parameter

other
IEnumerable<T> IEnumerable<T> IEnumerable<T> 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

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

Implementiert

Ausnahmen

Beispiele

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

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 Teilmenge einer anderen Auflistung.An empty set is a proper subset of any other collection. Daher gibt diese Methode zurück true , wenn die durch das aktuelle HashSet<T> -Objekt dargestellte Auflistung leer other ist, es sei denn, der-Parameter ist auch ein leerer Satz.Therefore, this method returns true if the collection represented by the current HashSet<T> object is empty unless the other parameter is also an empty set.

Diese Methode gibt immer false zurück Count , wenn größer oder gleich der Anzahl der Elemente in otherist.This method always returns false if Count is greater than or equal to the number of elements in other.

Wenn die durch other dargestellte Auflistung eine HashSet<T> Auflistung 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, then this method is an O(n) operation. Andernfalls ist diesenMethode ein O ( + m)-Vorgang, wobei n ist Count und m die Anzahl der Elemente in other.Otherwise, this method is an O(n + m) operation, where n is Count and m is the number of elements in other.

Gilt für: