HashSet<T>.SetEquals(IEnumerable<T>) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Určuje, zda HashSet<T> objekt a zadaná kolekce obsahují stejné prvky.
public:
virtual bool SetEquals(System::Collections::Generic::IEnumerable<T> ^ other);
public:
bool SetEquals(System::Collections::Generic::IEnumerable<T> ^ other);
public bool SetEquals (System.Collections.Generic.IEnumerable<T> other);
[System.Security.SecurityCritical]
public bool SetEquals (System.Collections.Generic.IEnumerable<T> other);
abstract member SetEquals : seq<'T> -> bool
override this.SetEquals : seq<'T> -> bool
[<System.Security.SecurityCritical>]
member this.SetEquals : seq<'T> -> bool
[<System.Security.SecurityCritical>]
abstract member SetEquals : seq<'T> -> bool
override this.SetEquals : seq<'T> -> bool
Public Function SetEquals (other As IEnumerable(Of T)) As Boolean
Parametry
- other
- IEnumerable<T>
Kolekce pro porovnání s aktuálním HashSet<T> objektem.
Návraty
true
pokud je HashSet<T> objekt roven hodnotě other
, jinak hodnota false
.
Implementuje
- Atributy
Výjimky
other
je null
.
Příklady
Následující příklad vytvoří dva různorodé HashSet<T> objekty a porovná je mezi sebou. Na začátku se tyto dvě množiny nerovnají, což je demonstrováno pomocí SetEquals metody . Objekt allNumbers
HashSet<T> se pak upraví a potom se sady shodí.
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
Poznámky
Metoda SetEquals ignoruje duplicitní položky a pořadí prvků v parametru other
.
Pokud je kolekce reprezentovaná other
kolekcí HashSet<T> se stejným porovnávačem rovnosti jako aktuální HashSet<T> objekt, tato metoda je operace O(n
). Jinak je tato metoda operací O(n
+ m
), kde n
je počet prvků v other
a m
je .Count
Platí pro
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro