问题描述
如何轻松在Dart中展平列表
?
How can I easily flatten a List
in Dart?
例如:
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
中?
How do I turn a
into b
, i.e. into a single List
containing all those values?
推荐答案
我知道的最简单的方法是将 Iterable.expand()
与身份函数一起使用。 expand()
接受Iterable的每个元素,在其上执行一个函数,该函数返回Iterable( expand部分),然后合并结果。在其他语言中,它可能被称为flatMap。
The easiest way I know of is to use Iterable.expand()
with an identity function. expand()
takes each element of an Iterable, performs a function on it that returns an iterable (the "expand" part), and then concatenates the results. In other languages it may be known as flatMap.
因此,通过使用标识函数,expand将仅连接各项。如果您确实想要列表,请使用 toList()
。
So by using an identity function, expand will just concatenate the items. If you really want a List, then use toList()
.
var a = [[1, 2, 3], ['a', 'b', 'c'], [true, false, true]];
var flat = a.expand((i) => i).toList();
这篇关于如何拼合列表?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!