C# | Remove all elements in a collection from a HashSet

01 Feb, 2019
A HashSet is an unordered collection of the unique elements. It is found in System.Collections.Generic namespace. It is used in a situation where we want to prevent duplicates from being inserted in the collection. As far as performance is concerned, it is better in comparison to the list. HashSet.ExceptWith(IEnumerable) Method is used to remove all elements in the specified collection from the current HashSet object.
Syntax:
mySet2.ExceptWith(mySet1)

Here, mySet1 and mySet2 are the two HashSets and the function returns the elements of mySet2 which are not in mySet1.
Exception: This method will give ArgumentNullException if the HashSet is null.
Below given are some examples to understand the implementation in a better way:
Example 1:
// C# code to remove all elements// in a collection from a HashSetusing System;using System.Collections.Generic;  class GFG {      // Driver code    public static void Main()    {          // Creating a HashSet of integers        HashSet<int> mySet1 = new HashSet<int>();          // Inserting elements into HashSet mySet1        for (int i = 0; i < 7; i++) {            mySet1.Add(i);        }          // Creating a HashSet of integers        HashSet<int> mySet2 = new HashSet<int>();          // Inserting elements into HashSet mySet2        for (int i = 4; i < 11; i++) {            mySet2.Add(i);        }          // Removing all elements in a collection from a HashSet        mySet2.ExceptWith(mySet1);          // Printing the elements in mySet2        // It only prints the elements which are        // in mySet2 and not in mySet1        foreach(int i in mySet2)        {            Console.WriteLine(i);        }    }}
7
8
9
10

Example 2:
// C# code to remove all elements// in a collection from a HashSetusing System;using System.Collections.Generic;  class GFG {      // Driver code    public static void Main()    {          // Creating a HashSet of strings        HashSet<string> mySet1 = new HashSet<string>();          // Inserting elements into HashSet mySet1        mySet1.Add("Punjab");        mySet1.Add("Haryana");        mySet1.Add("Jammu");        mySet1.Add("Himachal");        mySet1.Add("Delhi");          // Displaying all elements in mySet1        Console.WriteLine("The elements in mySet1 are : ");          foreach(string i in mySet1)        {            Console.WriteLine(i);        }          // Creating a HashSet of strings        HashSet<string> mySet2 = new HashSet<string>();          // Inserting elements into HashSet mySet2        mySet2.Add("Bangalore");        mySet2.Add("Kerala");        mySet2.Add("Uttar Pradesh");        mySet2.Add("Himachal");        mySet2.Add("Delhi");          // Displaying all elements in mySet2        Console.WriteLine("The elements in mySet2 are : ");          foreach(string i in mySet2)        {            Console.WriteLine(i);        }          // Removing all elements in a collection from a HashSet        mySet2.ExceptWith(mySet1);          // Printing the elements in mySet2        // It only prints the elements which are        // in mySet2 and not in mySet1          Console.WriteLine("The elements in mySet2 are : ");          foreach(string i in mySet2)        {            Console.WriteLine(i);        }    }}
The elements in mySet1 are : 
Punjab
Haryana
Jammu
Himachal
Delhi
The elements in mySet2 are : 
Bangalore
Kerala
Uttar Pradesh
Himachal
Delhi
The elements in mySet2 are : 
Bangalore
Kerala
Uttar Pradesh

Reference:
https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.hashset-1.exceptwith?view=netframework-4.7.2
CSharp-Generic-HashSet
CSharp-Generic-Namespace
CSharp-method
C#
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Introduction to .NET Framework
C# | Delegates
C# | Multiple inheritance using interfaces
Differences Between .NET Core and .NET Framework
C# | Method Overriding
C# | Data Types
C# | Constructors
C# | Class and Object
Extension Method in C#
C# | Replace() Method