我喜欢迭代一个列表并将它们分成几对,如下所示:
List<String> list = [1,2,3,4,5,6,7,8];
List<Tuple2> listOfTuples = list.take2((value1,value2) => Tuple2(value1,value2));
print(listOfTuples.toString()); // output => [[1,2],[3,4],[5,6],[7,8]]
Run Code Online (Sandbox Code Playgroud)
我知道有一个take(count)in dart 但我没有找到一个很好的例子。
我知道我可以用循环等来做到这一点,for但我想知道是否有更优雅的方式。
没有内置任何东西。我今天写的方式是:
var list = [1, 2, 3, 4, 5, 6, 7, 8];
var tuples = [
for (int i = 0; i < list.length - 1; i += 2) Tuple2(list[i], list[i + 1]),
];
Run Code Online (Sandbox Code Playgroud)
您可以take2编写一个扩展,提供List可以按照您描述的方式使用的api 。
extension Take2<T> on List<T> {
List<R> take2<R>(R Function(T, T) transform) => [
for (int i = 0; i < this.length - 1; i += 2)
transform(this[i], this[i + 1]),
];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
399 次 |
| 最近记录: |