有没有一种简单的方法可以在Dart中组合两个列表?

问题描述 投票:27回答:3

我想知道是否有一种简单的方法可以在dart中组合两个列表来创建一个全新的列表对象。我找不到任何类似的东西:

var newList = list1 + list2;

无效。

list generics dart
3个回答
60
投票

您可以使用:

var newList = new List.from(list1)..addAll(list2);

如果您有多个列表,您可以使用:

var newList = [list1, list2, list3].expand((x) => x).toList()

从Dart 2.3开始,您可以使用扩展运算符:

var newList = [...list1, ...list2, ...list3];

12
投票

也许更一致〜

var list = []..addAll(list1)..addAll(list2);

6
投票

Alexandres的回答是最好的,但是如果你想在你的例子中使用+ like,你可以使用Darts运算符重载:

class MyList<T>{
  List<T> _internal = new List<T>();
  operator +(other) => new List<T>.from(_internal)..addAll(other);
  noSuchMethod(inv){
    //pass all calls to _internal
  }
}

然后:

var newMyList = myList1 + myList2;

已验证 :)

© www.soinside.com 2019 - 2024. All rights reserved.