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(Test<E> test) {
if (!growable) {
throw UnsupportedError('Cannot remove values from a fixed-length list.');
}
var removed = 0;
for (var i = 0; i < length + removed; i++) {
if (!test(elements[i - removed])) {
elements.removeAt(i - removed);
_labels.removeAt(i - removed);
removed++;
}
}
}