我怎样才能轻松地在DART中压平List
?
例如:
var a = [[1, 2, 3], ['a', 'b', 'c'], [true, false, true]];
var b = [1, 2, 3, 'a', 'b', 'c', true, false, true];
如何将a
变为b
,即变成包含所有这些值的单个List
?
我怎样才能轻松地在DART中压平List
?
例如:
var a = [[1, 2, 3], ['a', 'b', 'c'], [true, false, true]];
var b = [1, 2, 3, 'a', 'b', 'c', true, false, true];
如何将a
变为b
,即变成包含所有这些值的单个List
?
据我所知,最简单的方法是使用带有身份功能的Iterable.expand()
.expand()
获取Iterable的每个元素,对其执行返回可迭代("展开"部分)的函数,然后连接结果.在其他语言中,它可能被称为flatMap.
因此,通过使用一个标识函数,expand只会连接这些项.如果你真的想要一个列表,那么使用toList()
.
var a = [[1, 2, 3], ['a', 'b', 'c'], [true, false, true]];
var flat = a.expand((i) => i).toList();