removeWhere method

  1. @override
void removeWhere(
  1. bool test(
    1. E element
    )
)
override

Removes all elements of this set that satisfy test.

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

Implementation

@override
void removeWhere(bool Function(E element) test) {
  // Create a temporary list of elements to remove to avoid concurrent modification
  final elementsToRemove = <E>[];
  for (final element in this) {
    if (test(element)) {
      elementsToRemove.add(element);
    }
  }
  for (final element in elementsToRemove) {
    remove(element);
  }
}