使用 Dart 中的 map() 等内置方法将嵌套列表(二维列表)转换为一个元素列表

dev*_*uaz 0 data-structures dart

如何将 2d 列表转换为 1d 列表,其中包含 dart 中的所有元素?

我有这个二维列表:

List<List<int>> list2d = [[1, 2], [3, 4]];
Run Code Online (Sandbox Code Playgroud)

我想要的是:

List<int> list1d = [1, 2, 3, 4];
Run Code Online (Sandbox Code Playgroud)

如果有任何内置方法,例如map()/where()/cast()/...etc.

有任何想法吗?

lrn*_*lrn 5

正如其他人指出的那样,expand做你想做的

var list2d = [[1, 2], [3, 4]];
var list1d = list2d.expand((x) => x).toList();
Run Code Online (Sandbox Code Playgroud)

您还可以(也许最好)使用列表文字:

var list1d = [for (var list in list2d) ...list];
Run Code Online (Sandbox Code Playgroud)

一般来说,iterable.expand((x) => e).toList()相当于[for (var x in iterable) ...e].