retainWhere method
Removes all objects from this list that fail to satisfy test.
An object o satisfies test if test(o) is true.
final numbers = <String>['one', 'two', 'three', 'four'];
numbers.retainWhere((item) => item.length == 3);
print(numbers); // [one, two]
The list must be growable.
Implementation
@override
void retainWhere(bool Function(T element) test) {
assert(ChangesNotifierHelperMixin.debugAssertNotDisposed(this));
final List<T> removed = _list.where((element) => !test(element)).toList();
for (final value in removed) {
_list.remove(value);
}
notifyListeners(ListChangeDetails<T>(const [], removed, 0));
}