Intersection of two HashSets in C#



To find the intersection of two HashSets, the code is as follows −

Example

 Live Demo

using System;
using System.Collections.Generic;
public class Demo {
   public static void Main(){
      HashSet<string> set1 = new HashSet<string>();
      set1.Add("AB");
      set1.Add("CD");
      set1.Add("EF");
      set1.Add("AB");
      set1.Add("IJ");
      set1.Add("KL");
      set1.Add("EF");
      set1.Add("OP");
      Console.WriteLine("Elements in HashSet1");
      foreach(string val in set1){
         Console.WriteLine(val);
      }
      HashSet<string> set2 = new HashSet<string>();
      set2.Add("EF");
      set2.Add("KL");
      Console.WriteLine("
Elements in HashSet2");       foreach(string val in set2){          Console.WriteLine(val);       }       Console.WriteLine("Count of elements in HashSet2 = " + set2.Count);       set2.Remove("KL");       Console.WriteLine("
Elements in HashSet2... (UPDATED)");       foreach (string res in set2){          Console.WriteLine(res);       }       Console.WriteLine("Count of elements in HashSet2 (Updated) = " + set2.Count);       Console.WriteLine("
Is set1 a superset of set2? "+set1.IsSupersetOf(set2));       set1.IntersectWith(set2);       Console.WriteLine("
Intersection result...");       foreach(string str in set1){          Console.WriteLine(str);       }    } }

Output

This will produce the following output −

Elements in HashSet1
AB
CD
EF
IJ
KL
OP
Elements in HashSet2
EF
KL
Count of elements in HashSet2 = 2 Elements in HashSet2... (UPDATED)
EF
Count of elements in HashSet2 (Updated) = 1
Is set1 a superset of set2? True Intersection result...
EF

Example

Let us now see another example −

 Live Demo

using System;
using System.Collections.Generic;
public class Demo {
   public static void Main(){
      HashSet<int> set1 = new HashSet<int>();
      set1.Add(30);
      set1.Add(60);
      set1.Add(70);
      set1.Add(80);
      set1.Add(100);
      set1.Add(125);
      Console.WriteLine("Elements in HashSet1");
      foreach(int val in set1){
         Console.WriteLine(val);
      }
      HashSet<int> set2 = new HashSet<int>();
      set2.Add(30);
      set2.Add(60);
      set2.Add(70);
      set2.Add(80);
      set2.Add(100);
      set2.Add(125);
      Console.WriteLine("
Elements in HashSet2");       foreach(int val in set2){          Console.WriteLine(val);       }       set1.IntersectWith(set2);       Console.WriteLine("
Intersection result...");       foreach(int val in set1){          Console.WriteLine(val);       }    } }

Output

This will produce the following output −

Elements in HashSet1
30
60
70
80
100
125
Elements in HashSet2
30
60
70
80
100
125
Intersection result...
30
60
70
80
100
125

Advertisements