Dart – Filter Elements of Set

To filter elements of a Set in Dart, call retainWhere() method and pass the condition that should be satisfied by the elements to remain in the Set. Set.retainWhere(condition) retains only those elements that satisfy the given condition, and removes those elements that do not satisfy the condition.

Syntax

The syntax to call retainWhere() method on Set mySet with condition passed as argument is

</>
Copy
mySet.retainWhere(condition)

where the condition is a function that accesses element of the Set via function parameter and returns a boolean value.

Examples

In the following program, we take a Set mySet, with some numbers, and filter only even numbers in the Set.

main.dart

</>
Copy
bool isEven(x) {
  if (x % 2 == 0)
    return true;
  else
    return false;
}

void main() {
  Set mySet = {1, 3, 6, 10, 13, 15, 20};
  print('Original Set  : $mySet');
  mySet.retainWhere(isEven);
  print('Filtered Set  : $mySet');
}

Output

Original Set  : {1, 3, 6, 10, 13, 15, 20}
Filtered Set  : {6, 10, 20}

We can also provide a lambda function as argument in the call to retainWhere() method.

main.dart

</>
Copy
void main() {
  Set mySet = {1, 3, 6, 10, 13, 15, 20};
  print('Original Set  : $mySet');
  mySet.retainWhere((x) => x % 2 == 0);
  print('Filtered Set  : $mySet');
}

Output

Original Set  : {1, 3, 6, 10, 13, 15, 20}
Filtered Set  : {6, 10, 20}

Conclusion

In this Dart Tutorial, we learned how to filter the elements of a Set in Dart language, with examples.