Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
Check if HashSet and the specified collection contain the same elements in C#
To check if a HashSet and another collection contain the same elements in C#, use the SetEquals() method. This method returns true if both collections have identical elements, regardless of order, and false otherwise.
Syntax
Following is the syntax for the SetEquals() method −
public bool SetEquals(IEnumerable<T> other)
Parameters
other − The collection to compare with the current HashSet.
Return Value
Returns true if the HashSet and the specified collection contain the same elements; otherwise, false.
Using SetEquals() with Different Elements
When the HashSet and another collection have different elements, SetEquals() returns false −
using System;
using System.Collections.Generic;
public class Demo {
public static void Main() {
HashSet<string> set1 = new HashSet<string>();
set1.Add("One");
set1.Add("Two");
set1.Add("Three");
set1.Add("Four");
set1.Add("Five");
set1.Add("Six");
set1.Add("Seven");
HashSet<string> set2 = new HashSet<string>();
set2.Add("One");
set2.Add("Two");
set2.Add("Three");
set2.Add("Four");
Console.WriteLine("Does it contain the same elements? = " + set1.SetEquals(set2));
}
}
The output of the above code is −
Does it contain the same elements? = False
Using SetEquals() with Identical Elements
When both collections contain exactly the same elements, SetEquals() returns true −
using System;
using System.Collections.Generic;
public class Demo {
public static void Main() {
HashSet<int> set1 = new HashSet<int>();
set1.Add(100);
set1.Add(200);
set1.Add(300);
set1.Add(400);
set1.Add(500);
set1.Add(600);
HashSet<int> set2 = new HashSet<int>();
set2.Add(100);
set2.Add(200);
set2.Add(300);
set2.Add(400);
set2.Add(500);
set2.Add(600);
Console.WriteLine("Does it contain the same elements? = " + set1.SetEquals(set2));
}
}
The output of the above code is −
Does it contain the same elements? = True
Using SetEquals() with Different Collection Types
The SetEquals() method works with any collection that implements IEnumerable<T>, including arrays and lists −
using System;
using System.Collections.Generic;
public class Demo {
public static void Main() {
HashSet<string> hashSet = new HashSet<string>();
hashSet.Add("Apple");
hashSet.Add("Banana");
hashSet.Add("Orange");
List<string> list = new List<string>();
list.Add("Banana");
list.Add("Apple");
list.Add("Orange");
Console.WriteLine("HashSet equals List? = " + hashSet.SetEquals(list));
string[] array = {"Apple", "Banana", "Cherry"};
Console.WriteLine("HashSet equals Array? = " + hashSet.SetEquals(array));
}
}
The output of the above code is −
HashSet equals List? = True HashSet equals Array? = False
Conclusion
The SetEquals() method in C# provides an efficient way to compare HashSets with other collections. It checks for identical elements regardless of order, making it perfect for set equality comparisons. The method returns true only when both collections contain exactly the same elements.
