# 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) {
      _Node<E>? current = _head;
      while (current != null) {
        final next = current.next; // Store next before potential removal
        if (!test(current.value)) {
          remove(current.value); // Use existing remove method
        }
        current = next;
      }
    }