HashSet<T>.SetEquals(IEnumerable<T>) 메서드

정의

HashSet<T> 개체와 지정된 컬렉션에 같은 요소가 들어 있는지 확인합니다.Determines whether a HashSet<T> object and the specified collection contain the same elements.

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
member this.SetEquals : seq<'T> -> bool
Public Function SetEquals (other As IEnumerable(Of T)) As Boolean

매개 변수

other
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 equal to other; otherwise, false.

구현

특성

예외

othernull입니다.other is null.

예제

다음 예제에서는 서로 다른 두 HashSet<T> 개체를 만들어 서로 비교 합니다.The following example creates two disparate HashSet<T> objects and compares them to each another. 처음에는 두 집합이 같지 않습니다 .이는 SetEquals 메서드를 사용 하 여 보여 줍니다.Initially, the two sets are not equal, which is demonstrated by using the SetEquals method. 그런 다음 allNumbersHashSet<T> 개체가 수정 된 후 집합이 동일 하 게 됩니다.The allNumbersHashSet<T> object is then modified, after which the sets are equal.

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

설명

SetEquals 메서드는 other 매개 변수에서 중복 항목과 요소의 순서를 무시 합니다.The SetEquals method ignores duplicate entries and the order of elements in the other parameter.

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) 작업입니다. 여기서 nother의 요소 수이 고 mCount입니다.Otherwise, this method is an O(n + m) operation, where n is the number of elements in other and m is Count.

적용 대상