【问题标题】:what is dart equivalence function for a filtering a list?过滤列表的飞镖等效函数是什么?
【发布时间】:2021-01-18 22:34:55
【问题描述】:

什么是过滤列表的 dart 等价函数?以下 java 代码包含用于对列表执行过滤的布尔值参数。这在 dart 中如何表现得最好?

public List<playlist> findVideos(Predicate<Playlist> filter) {
        return videos.stream().filter(filter).collect(Collectors.toList());
    }

【问题讨论】:

    标签: list flutter dart filtering


    【解决方案1】:

    Dart 为 Iterable 类提供了 where 方法。

    例如:

      final list = <int>[1, 2, 3, 4, 5, 6, 7, 8, 9];
      print(list.where((i) => i > 4)); // prints [5, 6, 7, 8, 9]
    

    【讨论】:

    • 请注意,.where() 返回一个Iterable,所以如果你想要一个List,你需要在最后调用.toList()
    【解决方案2】:

    Dart 的collection-for and collection-if 构造允许您使用与控制流语句非常相似的表达式直接构建列表。例如:

    List<playlist> findVideos(bool Function(Playlist) filter) {
      var filteredList = [
        for (var playlist in videos.stream())
          if (filter(playlist))
            playlist,
      ];
    
      // ...
    }
    

    【讨论】:

      猜你喜欢
      • 2020-11-06
      • 2020-04-03
      • 1970-01-01
      • 1970-01-01
      • 2020-04-12
      • 2018-10-15
      • 2019-10-24
      • 2013-09-09
      • 1970-01-01
      相关资源
      最近更新 更多