List 从列表中删除其他列表中缺少的元素

List 从列表中删除其他列表中缺少的元素,list,flutter,List,Flutter,我想从列表中删除不在另一个列表中的元素。如果我有 List a = [{"id": 1}, {"id": 2}, {"id": 4}, {"id": 7},] List b = [{"id": 1}, {"id": 2}, {"id": 7},] 然后我想从列表a中删除元素{“id”:4},因为它在列表b中缺失 如果清单b是 List b = [{&qu

我想从列表中删除不在另一个列表中的元素。如果我有

List a = [{"id": 1}, {"id": 2}, {"id": 4}, {"id": 7},]

List b = [{"id": 1}, {"id": 2}, {"id": 7},]
然后我想从列表a中删除元素
{“id”:4}
,因为它在列表b中缺失

如果清单b是

List b = [{"id": 1}, {"id": 2}, {"id": 4},]
然后我想从列表中删除一个元素
{“id”:7}

如何在颤振中执行此操作

多谢各位

void main() {
  var a = [{"id": 1}, {"id": 2}, {"id": 4}, {"id": 7}];
  var b = [{"id": 1}, {"id": 2}, {"id": 7}];
  var c = a.map((m) => m['id']);
  var d = b.map((m) => m['id']);
  var e = c.toSet().difference(d.toSet());
  var f = a.where((m) => e.contains(m['id']));
  
  print(f);
}
结果

({id: 4})
我是这样修好的

List a = [{"id": 1}, {"id": 2}, {"id": 4}, {"id": 7}];
List b = [{"id": 1}, {"id": 2}, {"id": 7}];

a.removeWhere((elementA) => b.every((elementB) =>              
              elementB["id"] != elementA["id"]));
我做了这个a.removehere((elementA)=>b.every((elementB)=>elementB[“id”!=elementA[“id”]);因为我需要一个没有b元素缺失的a,而不是一个没有b元素的a。我希望没问题