使用列表中的where命令遍历其内容

时间:2018-06-25 00:45:12

标签: dart

我正在玩Dart,并想出了以下代码

List<String> lst = new List<String>();

  main()
{
  lst.add("hello");
  lst.where((String str) {
    if(str=="hello"){
      print("Found");
    }
  });
}

在调试时,我注意到它没有进入where语句并打印“ Found”。我做错什么了吗?

1 个答案:

答案 0 :(得分:2)

  var filteredList = lst.where((String str) {
    if(str=="hello"){
      print("Found");
      return true;
    }
    return false;
  });
  print(filteredList);

where()

  • 应返回truefalse,以表明该项目是否满足条件

  • 创建并返回一个新的可迭代对象,它不会修改原始集合

  • 是惰性的,这意味着在使用结果之前不会执行它。 toList()是要求结果具体化并在每个项目上执行where条件的操作之一(许多收集方法是惰性的)。