Dart高效之操作集合

2019-12-18  本文已影响0人  NightRainBreeze

Dart 操作集合

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

forEach

迭代集合的每一个元素

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

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

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
// 输出结果同上
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>();
flutter: 1
flutter: 2
flutter: 3

skip

跳过, 会从指定index开始.

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

take

会获取接下来的N个值

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

TODO

其他方法:

上一篇 下一篇

猜你喜欢

热点阅读