retainWhere method

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

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(E element) test) {
  var list = _effectiveList;

  _workOnOriginalList(() {
    super.retainWhere((E element) {
      var isInList = _isInList(element, list);
      return !isInList || (_isInList(element, list) && test(element));
    });
  });

  _updateFilteredList();
}