Dart高效之操作集合

Dart 操作集合

final list = [ '1', '2', '3', '4', '5', '6', '7', '8', '9', '0'];

forEach

迭代集合的每一个元素

  • demo
list.forEach((String it){
  print(it);
});
// 等效于
for (var it in list) {
  print(it);
}
  • 输出结果
flutter: 1
flutter: 2
flutter: 3
flutter: 4
flutter: 5
flutter: 6
flutter: 7
flutter: 8
flutter: 9
flutter: 0

where

返回一个新的满足条件的集合, 并且与原集合顺序保持一致.

  • demo
list.where((String it) {
  return int.parse(it) % 2 == 0;
}).forEach((String it) {
  print(it);
});
  • 输出结果
flutter: 2
flutter: 4
flutter: 6
flutter: 8
flutter: 0
  • 优化where((it) {}forEach((it) {}为函数式, 直接使用链式调用的方式:
// 输出结果同上
list.where((it) => int.parse(it) % 2 == 0).forEach(print);
  • 或者使用自定义的方法:
list.where((it) => int.parse(it) % 2 == 0).forEach(customPrint);

void customPrint(String it) {
    it += ' - ';
    print(it);
}
  • 输出结果
flutter: 2 -
flutter: 4 -
flutter: 6 -
flutter: 8 -
flutter: 0 -

whereType

获取指定类型的集合

var list = [1, "a", 2, "b", 3];
var ints = list.whereType<int>();
  • ints
flutter: 1
flutter: 2
flutter: 3

skip

跳过, 会从指定index开始.

  • demo
list.skip(3).forEach(print);
  • 输出
flutter: 4
flutter: 5
flutter: 6
flutter: 7
flutter: 8
flutter: 9
flutter: 0

take

会获取接下来的N个值

  • demo
// 跳过前三个, 接下来只取3个值
list.skip(3).take(3).forEach(print);
  • 输出
flutter: 4
flutter: 5
flutter: 6

TODO

其他方法:

  • fold
  • join
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 12,181评论 0 10
  • 溪水急着要流向海洋,浪潮却渴望重回土地。在绿树白花的篱前,曾那样轻易地挥手道别。而沧桑了二十年後,我们的魂魄却夜夜...
    熙桉阅读 2,629评论 0 6
  • 本篇讲如何在Xcode中进行单元测试 在测试中应当知道的 通常,测试应当包含: 核心功能:模型类和方法,以及它们和...
    格格格雷尔阅读 4,032评论 0 1
  • 从小到大都在想一个问题,如果我不是我,也许就不会这么难过了。眼里的别人好像活的很轻松,不像我从小就是一个心思沉重的...
    shinysoso阅读 1,765评论 0 2
  • 在package.json文件 添加jQuery依赖 2、在webpack.base.conf.js中module...
    吖蛋黄阅读 6,075评论 0 0

友情链接更多精彩内容