我想知道是否有一种简单的方法可以在dart中组合两个列表来创建一个全新的列表对象。我找不到任何类似的东西:
var newList = list1 + list2;
无效。
您可以使用:
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];
也许更一致〜
var list = []..addAll(list1)..addAll(list2);
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;
已验证 :)