A HashSet is an unordered collection of the unique elements. It comes under 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<T>.RemoveWhere(Predicate<T>) method is used to remove all elements that match the conditions defined by the specified predicate from a HashSet<T> collection.
Syntax:
public int RemoveWhere (Predicate<T> match);
Return Value: This method returns the number of elements that were removed from the HashSet<T> collection.
Exception: This method will give the ArgumentNullException if the match is null.
Note: Calling this method is an O(n) operation, where n is Count i.e, the number of elements that are contained in the set.
Below are the programs to illustrate the use of HashSet<T>.RemoveWhere(Predicate<T>) Method:
Example 1:
// C# code to remove elements from a HashSet // with conditions defined by the predicate using System;
using System.Collections.Generic;
class GFG {
// Driver code
public static void Main()
{
// Creating a HashSet of integers
HashSet< int > mySet = new HashSet< int >();
// Inserting elements into HashSet
for ( int i = 0; i < 10; i++) {
mySet.Add(i);
}
Console.WriteLine( "The elements in HashSet are : " );
// Displaying the elements in HashSet
foreach ( int i in mySet)
{
Console.WriteLine(i);
}
// Displaying the number of elements in HashSet
Console.WriteLine( "Number of elements are : " + mySet.Count);
// Remove elements from a HashSet
// with conditions defined by the predicate
mySet.RemoveWhere(isEven);
Console.WriteLine( "The elements in HashSet are : " );
// Displaying the elements in HashSet
foreach ( int i in mySet)
{
Console.WriteLine(i);
}
// Displaying the number of elements in HashSet
Console.WriteLine( "Number of elements are : " + mySet.Count);
}
// Helper function which tells
// whether an element is even or not
private static bool isEven( int i)
{
return ((i % 2) == 0);
}
} |
The elements in HashSet are : 0 1 2 3 4 5 6 7 8 9 Number of elements are : 10 The elements in HashSet are : 1 3 5 7 9 Number of elements are : 5
Example 2:
// C# code to remove elements from a HashSet // with conditions defined by the predicate using System;
using System.Collections.Generic;
class GFG {
// Driver code
public static void Main()
{
// Creating a HashSet of integers
HashSet< int > mySet = new HashSet< int >();
// Inserting elements into HashSet
for ( int i = 0; i < 20; i++) {
mySet.Add(i);
}
// Displaying the number of elements in HashSet
Console.WriteLine( "Number of elements are : " + mySet.Count);
// Remove elements from a HashSet
// with conditions defined by the predicate
mySet.RemoveWhere(myFunc);
// Displaying the number of elements in HashSet
Console.WriteLine( "Number of elements are : " + mySet.Count);
}
// Helper function which tells
// whether an element is divisible
// by both 2 and 3
private static bool myFunc( int i)
{
return ((i % 2) == 0 && (i % 3 == 0));
}
} |
Number of elements are : 20 Number of elements are : 16
Reference: