我有两个已确认长度相同的列表。我想同时对它们进行操作。我的代码目前看起来像这样:
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方式来完成这项任务?
答案 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])];