Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 比较两个不同的列表并筛选第一个列表_Flutter_Dart_Mobile - Fatal编程技术网

Flutter 比较两个不同的列表并筛选第一个列表

Flutter 比较两个不同的列表并筛选第一个列表,flutter,dart,mobile,Flutter,Dart,Mobile,试图实现以下结果,但无法找到正确的流程或代码来解决此问题。请找到解决办法 List ids = ['2330', '1111']; List users = [{"id": ['1234','2330'], "name": "username1"}, {"id":['1111','2330'], "name": "username2"},{"id": ['3

试图实现以下结果,但无法找到正确的流程或代码来解决此问题。请找到解决办法

List ids = ['2330', '1111'];
List users = [{"id": ['1234','2330'], "name": "username1"}, {"id":['1111','2330'], "name": "username2"},{"id": ['3455','2331'], "name": "username3"}];
# I want the result to be like
List selectedUsers = [{"id": ['1234','2330'], "name": "username1"}, {"id":['1111','2330'], "name": "username2"}];
我试过这个

 List selectedUsers = users.where((u) => ids.contains(u["id"])).toList();
但这不起作用

 Result: []
我做错了什么


提前谢谢

您的代码有点错误。您正在检查id是否包含整个列表u[“id”]

试试这个:

List selectedUsers = users.where((u) => ids.any((id) => u["id"].contains(id))).toList();
any(…)将函数作为测试,如果iterable ID的任何元素通过测试,则返回true。在这里,如果id中的任何id出现在u[“id”]中,您的测试应该返回true。现在,将整个过程用作过滤器,您将获得所需的结果:

[{id: [1234, 2330], name: username1}, {id: [1111, 2330], name: username2}]

这是非常混乱,你试图实现,需要更多的细节,我想比较2个列表,并过滤匹配的项目