GeeksforGeeks App
Open App
Browser
Continue

# C# | Union of two HashSet

A HashSet is an unordered collection of the unique elements. It comes under the 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. For the Union of two HashSet, HashSet.UnionWith(IEnumerable) Method is used. Syntax:

`firstSet.UnionWith(secondSet)`

Exception: If the Set is null then this method give ArgumentNullException. Below given are some examples to understand the implementation in a better way: Example 1:

## CSHARP

 `// C# code to find Union of two HashSet``using` `System;``using` `System.Collections.Generic;` `class` `GFG {` `    ``// Driver code``    ``public` `static` `void` `Main()``    ``{` `        ``// Creating a HashSet of integers``        ``HashSet<``int``> mySet1 = ``new` `HashSet<``int``>();` `        ``// Creating a HashSet of integers``        ``HashSet<``int``> mySet2 = ``new` `HashSet<``int``>();` `        ``// Inserting even numbers less than``        ``// equal to 10 in HashSet mySet1``        ``for` `(``int` `i = 0; i < 5; i++) {``            ``mySet1.Add(i * 2);``        ``}` `        ``// Inserting odd numbers less than``        ``// equal to 10 in HashSet mySet2``        ``for` `(``int` `i = 0; i < 5; i++) {``            ``mySet1.Add(i * 2 + 1);``        ``}` `        ``// Creating a new HashSet that contains``        ``// the union of both the HashSet mySet1 & mySet2``        ``HashSet<``int``> ans = ``new` `HashSet<``int``>(mySet1);` `        ``ans.UnionWith(mySet2);` `        ``// Printing the union of both the HashSet``        ``foreach``(``int` `i ``in` `ans)``        ``{``            ``Console.WriteLine(i);``        ``}``    ``}``}`

Output:

```0
2
4
6
8
1
3
5
7
9```

Example 2:

## CSHARP

 `// C# code to find Union of two HashSet``using` `System;``using` `System.Collections.Generic;`` ` `class` `GFG {`` ` `    ``// Driver code``    ``public` `static` `void` `Main()``    ``{`` ` `        ``// Creating a HashSet of strings``        ``HashSet<``string``> mySet1 = ``new` `HashSet<``string``>();`` ` `        ``// Creating a HashSet of strings``        ``HashSet<``string``> mySet2 = ``new` `HashSet<``string``>();`` ` `        ``// Inserting elements in mySet1``        ``mySet1.Add("Hello");``        ``mySet1.Add("GeeksforGeeks");``        ``mySet1.Add("GeeksforGeeks");`` ` `        ``// Inserting elements in mySet2``        ``mySet2.Add("You");``        ``mySet2.Add("are");``        ``mySet2.Add("the");``        ``mySet2.Add("best");`` ` `        ``// Creating a new HashSet that contains``        ``// the union of both the HashSet mySet1 & mySet2``        ``HashSet<``string``> ans = ``new` `HashSet<``string``>(mySet1);`` ` `        ``ans.UnionWith(mySet2);`` ` `        ``// Printing the union of both the HashSet``        ``foreach``(``string` `i ``in` `ans)``        ``{``            ``Console.WriteLine(i);``        ``}``    ``}``}`

Output:

```Hello
GeeksforGeeks
You
are
the
best```

Reference:

There are several advantages of using the Union method of HashSet<T> in C# to merge two hash sets into one. Here are some of them:

1. Efficiency: The Union method is optimized for performance, and can efficiently merge two large sets into one without requiring much processing power or memory. This can be particularly useful when working with large data sets.
2. No duplicates: The resulting set after the Union operation will contain only unique elements. This is because HashSet<T> does not allow duplicate entries.
3. Easy to use: The Union method is very easy to use, and requires only two hash sets as input parameters. This makes it easy to use in your code without requiring any complex data processing.
4. Maintainability: Using the Union method can make your code more maintainable, as it provides a clear and concise way to merge two sets together.
5. Flexibility: The Union method can be used with any type of objects that can be stored in a HashSet<T>. This means that you can use it to merge sets of integers, strings, objects, or any other data type that you may be working with in your code.

Overall, the Union method of HashSet<T> provides a simple, efficient, and flexible way to merge two hash sets together in C#.

My Personal Notes arrow_drop_up