Map<K, V> where(bool Function(V item) predicate) { Iterable<MapEntry<K, V>> iter = this.entries.where((MapEntry<K, V> kvp) => predicate(kvp.value)); return iter.asMap(); }