Dart:使用地图过滤列表

Kar*_*dts 6 dart flutter

列表 1:我有一个包含用户 ID 的列表:(选定的用户)

['1234', '3455', '2330', '1111']
Run Code Online (Sandbox Code Playgroud)

列表 2:我有第二个列表,其中包含用户的完整个人资料(地图):(所有用户)

[{"id": '1234', "name": "username"}, {"id": '3455' .... ]
Run Code Online (Sandbox Code Playgroud)

列表 3:我想要包含所有选定用户的第三个列表:返回列表 2 中 ID 为列表 1 的所有用户。

我试过这个...

 list1.forEach((element) =>
         list3.add(list2.where((data) => data['id'] == element)));
Run Code Online (Sandbox Code Playgroud)

但这不起作用...

error: The argument type 'Iterable<Map<String, dynamic>>' can't be assigned to the parameter type 'Map<String, dynamic>'. 
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

提前致谢!

Ibr*_*han 5

您可以list3 = list2.where((map)=>list1.contains(map["id"])).toList()用于创建 list3

问题的原因是您的 list3 需要一张地图,但您的list2.where(..)代码是Returns List[map, map, map]