如何在 dart 中过滤带有条件的列表

Moh*_*ari 2 dart

我有一个清单,我想在上面加上一个条件。例如:

var lst = [{"value":5 , "name":"test1"}  ,{"value":12 , "name":"test2"}  , {"value":8 , "name":"test3"}  , {"value":23 , "name":"test4"} ];
//output: value greater than 10 => [{"value":12 , "name":"test2"} , {"value":23 , "name":"test4"}]
Run Code Online (Sandbox Code Playgroud)

lrn*_*lrn 8

您可以使用whereiterables 上的函数来过滤其元素,然后将生成的 iterable 转换回列表,或使用列表文字语法,或两者​​的组合,在其中“传播”以下结果where:

var list = [ ... ];
var filtered1 = list.where((e) => e["value"] > 10).toList();
var filtered2 = [for (var e in list) if (e["value"] > 10) e];
var filtered3 = [... list.where((e) => e["value"] > 10)];
Run Code Online (Sandbox Code Playgroud)