Dart 将多个地图合并/合并为一个地图

Dart 将多个地图合并/合并为一个地图,dart,Dart,如何将dart中的2个或多个地图合并/合并为1个地图? 例如,我有一些类似于: var firstMap = {"1":"2"}; var secondMap = {"1":"2"}; var thirdMap = {"1":"2"}; 我想: var finalMap = {"1":"2", "1":"2", "1":"2"}; 您可以使用Map对象的addAll方法 var firstMap = {"1":"2"}; var secondMap = {"2":"3"}; var

如何将dart中的2个或多个地图合并/合并为1个地图? 例如,我有一些类似于:

 var firstMap = {"1":"2"};
 var secondMap = {"1":"2"};
 var thirdMap = {"1":"2"};
我想:

 var finalMap = {"1":"2", "1":"2", "1":"2"};

您可以使用
Map
对象的
addAll
方法

var firstMap = {"1":"2"};
var secondMap = {"2":"3"};

var thirdMap = {};

thirdMap.addAll(firstMap);
thirdMap.addAll(secondMap);

print(thirdMap);

更新 自dart sdk 2.3以来 您可以使用排列运算符

final firstMap={“1”:“2”};
最后一个secondMap={“2”:“3”};
最终第三地图={
…第一张地图,
…第二张地图,
};
另一个选项是使用from
包:collection

new CombinedMapView([firstMap, secondMap])

它不创建合并的映射,而是创建一个作为两者视图的
map

使用
map.addAll
Iterable.reduce的替代语法,用于组合大量映射:

var combinedMap = mapList.reduce( (map1, map2) => map1..addAll(map2) );
实时dartpad示例

我为一系列地图想出了一个“单线”解决方案:

var finalMap = Map.fromEntries(mapList.expand((map) => map.entries));

但是没有办法将它们合并到一行中吗?var finalMap={}..addAll(firstMap)…addAll(secondMap)…addAll(thirdMap)@HarryTerkelsen,你的反馈非常有用,这在将贴图与内部贴图展开操作符相结合时不起作用……wowHaving dartpad在这方面非常棒,非常清楚地显示了它是如何工作的,我可以使用这些值。谢谢
var finalMap = Map.fromEntries(mapList.expand((map) => map.entries));