How can I filter a map / access the entries

dart

Solution

Update: with control flow collection statements you can also do this:

final filteredMap = {
  for (final key in map.keys)
    if (!key.startsWith('foo')) key: map[key]
};

Original answer: Dart 2.0.0 added `removeWhere` which can be used to filter Map entities. Given your example, you could apply this as:

Map map;
final filteredMap = Map.from(map)..removeWhere((k, v) => !k.startsWith("foo"));

It's not the `where` method you asked for, but filtering Map entities is certainly doable this way.

Problem

The Map interface doesn't seem to provide access to the entries as an iterable, nor does it expose a where method to filter entries. Am I missing something? Is there a simple workaround? e.g. ``` Map map; final filteredMap = map.where((k, v) => k.startsWith("foo")); ```

Original source