如何在Dart中并行迭代两个列表?

时间:2017-07-20 19:04:20

标签: dart

我有两个已确认长度相同的列表。我想同时对它们进行操作。我的代码目前看起来像这样:

var a = [1, 2, 3];
var b = [4, 5, 6];
var c = [];
for(int i = 0; i < a.length; i++) {
  c.add(new Foo(a, b));
}

以这种方式计算列表A的长度似乎有点笨拙。是否有更好的Dart-y方式来完成这项任务?

3 个答案:

答案 0 :(得分:3)

查看quiver个软件包zip function

您可以将其写为:

var a = [1, 2, 3];
var b = [4, 5, 6];
var c = [];
for (var pair in zip([a, b])) {
  c.add(new Foo(pair[0], pair[1]));
}

答案 1 :(得分:2)

如果您想使用quiver包的zip函数提供更短的解决方案,则可以执行以下操作:

final c = zip([a, b]).map((item) => Foo(item[0], item[1])).toList();

答案 2 :(得分:1)

现在我们有了 dart 中的列表推导式:

final c = [for(int i = 0; i<a.length; i+= 1) Foo(a[i], b[i])];