Dartで2つのリストを組み合わせて新しいリストオブジェクトを作成する簡単な方法があるかどうか疑問に思いました。私はこのような何かを見つけることができませんでした:
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の答えは最高ですが、例のように+を使用したい場合は、ダーツ演算子のオーバーロードを使用できます。
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;
有効です:)