# retainWhere method

1. @override

void retainWhere(

1. bool test(
   1. E element
   )

)
override

Removes all elements of this set that fail to satisfy `test`.

    final characters = <String>{'A', 'B', 'C'};
    characters.retainWhere(
        (element) => element.startsWith('B') || element.startsWith('C'));
    print(characters); // {B, C}

## Implementation

    @override
    void retainWhere(bool Function(E element) test) {
      final elementsToRemove = <E>[];
      for (final element in this) {
        if (!test(element)) {
          elementsToRemove.add(element);
        }
      }
      for (final element in elementsToRemove) {
        remove(element);
      }
    }