我怎样才能轻松地在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();

Dart相关问答推荐

数字到字符串的转换在 Dart 中总是不变的(即没有文化)?

如何通过点击 BottomNavigationBarItem 以编程方式打开Drawer抽屉?

Dart 1.8 中的异步/等待功能

Flutter中包导入和普通导入有什么区别?

如何在 Flutter 的小部件树中将新的 MaterialPageRoute 作为子项打开

Flutter:并非所有本地化代表都支持应用程序的语言环境

有没有办法知道我的Flatter应用程序使用的是哪个Android API版本?

Flutter Drawer Widget - 更改 Scaffold.body 内容

iOS 上 Flutter 的代码设计错误

有没有更好的方法来解析 Dart 中的 int

如何组织混合HTTP服务器+web客户端Dart元素文件?

Error: The argument type "String?"can't be assigned to the parameter type"String" because "String?"s nullable and "String"isn't

错误:default constructor is already defined

如何使用 Dart 和 web 以 60fps 的速度驱动动画循环?

多次打印同一个字符而不循环

在dart中获取列表的最后一个元素

如何重新引发异常并保留堆栈跟踪?

如何以 Dart 语言将变量完全转储/打印到控制台?

将多张map合并/合并为一张map

Dart 中的函数类型定义(typedefs)/函数类型别名(function-type aliases)是什么?