HashSet<T>.IsProperSupersetOf(IEnumerable<T>) Yöntem

Tanım

Bir HashSet<T> nesnenin belirtilen koleksiyonun uygun bir üst kümesi olup olmadığını belirler.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

Parametreler

other
IEnumerable<T>

Geçerli nesneyle Karşılaştırılacak koleksiyon HashSet<T> .The collection to compare to the current HashSet<T> object.

Döndürülenler

Boolean

trueHashSet<T>nesne uygun bir üst kümese other ; Aksi durumda, false .true if the HashSet<T> object is a proper superset of other; otherwise, false.

Uygulamalar

Öznitelikler

Özel durumlar

other, null değeridir.other is null.

Örnekler

Aşağıdaki örnek iki farklı nesne oluşturur HashSet<T> ve bunları birbirleriyle karşılaştırır.The following example creates two disparate HashSet<T> objects and compares them to each other. Bu örnekte, allNumbers lowNumbers allNumbers IntersectWith yalnızca her iki kümede de yer alan değerleri içerecek şekilde değiştirilene kadar bir üst küme ve uygun bir üst kümesidir.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. allNumbersVe lowNumbers özdeş olduğunda, allNumbers hala bir üst kümesidir, lowNumbers ancak artık uygun bir üst küme değildir.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

Açıklamalar

Boş küme, başka bir koleksiyonun uygun bir üst kümesidir.An empty set is a proper superset of any other collection. Bu nedenle, bu yöntem, true other geçerli HashSet<T> koleksiyon da boş olmadığı takdirde parametre tarafından temsil edilen koleksiyon boşsa, döndürür.Therefore, this method returns true if the collection represented by the other parameter is empty unless the current HashSet<T> collection is also empty.

Bu yöntem her zaman false , Count içindeki öğe sayısından küçük veya eşit ise döndürür other .This method always returns false if Count is less than or equal to the number of elements in other.

Tarafından temsil edilen koleksiyon, other HashSet<T> geçerli nesneyle aynı eşitlik karşılaştırıcısı olan bir koleksiyondur HashSet<T> , bu yöntem bir O ( n ) işlemidir.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. Aksi takdirde, bu yöntem bir O ( n + m ) işlemidir; burada, n ve ' deki öğe sayısıdır 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.

Şunlara uygulanır