removeWhere method Null safety

void removeWhere(
  1. bool test(
    1. K key,
    2. V value
    ),
  2. {bool notifyChanges = true}
)

Removes all entries of this map that satisfy the given test.

final terrestrial = <int, String>{1: 'Mercury', 2: 'Venus', 3: 'Earth'};
terrestrial.removeWhere((key, value) => value.startsWith('E'));
print(terrestrial); // {1: Mercury, 2: Venus}

Implementation

void removeWhere(bool Function(K key, V value) test,
    {bool notifyChanges = true}) {
  final stateChangedEvents = <EmpireStateChanged<V>>[];

  _value.removeWhere((key, value) {
    final shouldRemove = test(key, value);

    if (shouldRemove) {
      stateChangedEvents.add(EmpireStateChanged.removedFromMap(
        key,
        value,
        propertyName: propertyName,
      ));
    }

    return shouldRemove;
  });

  if (notifyChanges) {
    _viewModel.notifyChanges(stateChangedEvents);
  }
}