我想知道是否有一种简单的方法可以在dart中连接两个列表以创建一个全新的列表对象。我找不到任何东西,像这样:
我的列表:
list1 = [1, 2, 3]
list2 = [4, 5, 6]
我试过了:
var newList = list1 + list2;
我想要以下的组合输出:
[1, 2, 3, 4, 5, 6]
Answers:
您可以使用:
var newList = new List.from(list1)..addAll(list2);
如果您有多个列表,则可以使用:
var newList = [list1, list2, list3].expand((x) => x).toList()
从Dart 2开始,您现在可以使用+
:
var newList = list1 + list2 + list3;
从Dart 2.3开始,您可以使用传播运算符:
var newList = [...list1, ...list2, ...list3];
+
不能在不同类型的列表上使用运算符。(在这种情况下,您会收到类似的错误type 'List<Widget>' is not a subtype of type 'List<Image>'
)。但是,散布运算符在此用例中效果很好。
也许更一致〜
var list = []..addAll(list1)..addAll(list2);
..addAll()
为什么不只是一个点呢?
我们可以使用addAll()
方法将其他列表的所有元素添加到现有列表中。
使用addAll()
方法将另一个列表的所有元素添加到现有列表。并将所有iterable对象附加到此列表的末尾。
用可迭代的对象数扩展列表的长度。UnsupportedError
如果此列表是固定长度的,则抛出。
建立清单
listone = [1,2,3]
listtwo = [4,5,6]
合并清单
listone.addAll(listtwo);
输出:
[1,2,3,4,5,6]
[list1, list2, list3, ...].expand((x) => x).toList()
;