retainWhere 方法

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

移除所有不满足 test 的此集合的元素。

final characters = <String>{'A', 'B', 'C'};
characters.retainWhere(
    (element) => element.startsWith('B') || element.startsWith('C'));
print(characters); // {B, C}

实现

void retainWhere(bool test(E element)) {
  List<Object?> toRemove = [];
  for (E element in this) {
    if (!test(element)) toRemove.add(element);
  }
  removeAll(toRemove);
}