我对dart集合库不是很熟悉,所以我可能需要简单的帮助。
我有一个Map<K,V>
和T Function(k, v)
,它们从一个Map条目中产生一个T元素。现在我要一个List<T>
。当然,简单的方法确实有效:
List<T> list = [];
map.foreach((k,v) => list.add(myfunc(k,v)));
return list;
但是我认为应该有一个更紧凑的版本?我发现了类似map.values.map((V) => T(V));
的东西,但我强烈希望在函数中使用该键。为此有简短的文字吗?
(顺便说一句,我的地图实际上是一个Map<String, Map<String, List<MyType>>>
,并且键值位于树的第一个MyType中。而且我觉得使用v.first.values.first[0].getSomething
之类的键来恢复键会更昂贵比上面的解决方案好吗?!)
答案 0 :(得分:0)
如果您同时需要键和值,请尝试类似
Map<String, Map<String, List<String>>> mapOfMaps= new Map();
//You can use both the key and the value
mapOfMaps.keys.map((k) => myfunc(k,mapOfMaps[k]));
答案 1 :(得分:0)
那又怎么样:
var list = map.keys.map((k) => myfunc(k, map[k])).toList();