retainWhere method
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(Test<E> test, {bool notifyListeners = true}) {
if (notifyListeners) {
final elementsToRemove = <E>{};
for (var element in value) {
if (!test(element)) {
elementsToRemove.add(element);
}
}
removeAll(elementsToRemove);
} else {
value.retainWhere(test);
}
}