Export (0) Print
Expand All

HashSet(Of T).SetEquals Method

Determines whether a HashSet(Of T) object and the specified collection contain the same elements.

Namespace:  System.Collections.Generic
Assemblies:   System.Core (in System.Core.dll)
  System.Collections (in System.Collections.dll)

'Declaration
Public Function SetEquals ( _
	other As IEnumerable(Of T) _
) As Boolean

Parameters

other
Type: System.Collections.Generic.IEnumerable(Of T)

The collection to compare to the current HashSet(Of T) object.

Return Value

Type: System.Boolean
true if the HashSet(Of T) object is equal to other; otherwise, false.

Implements

ISet(Of T).SetEquals(IEnumerable(Of T))

ExceptionCondition
ArgumentNullException

other is Nothing.

The SetEquals method ignores duplicate entries and the order of elements in the other parameter.

If the collection represented by other is a HashSet(Of T) collection with the same equality comparer as the current HashSet(Of T) object, this method is an O(n) operation. Otherwise, this method is an O(n + m) operation, where n is the number of elements in other and m is Count.

The following example creates two disparate HashSet(Of T) objects and compares them to each another. Initially, the two sets are not equal, which is demonstrated by using the SetEquals method. The allNumbers HashSet(Of T) object is then modified, after which the sets are equal.

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

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Portable Class Library

Supported in: Portable Class Library

Supported in: Windows Phone 8.1

Supported in: Windows Phone Silverlight 8.1

Supported in: Windows Phone Silverlight 8
Show:
© 2015 Microsoft