web-dev-qa-db-ja.com

Dartで2つのリストを結合する簡単な方法はありますか?

Dartで2つのリストを組み合わせて新しいリストオブジェクトを作成する簡単な方法があるかどうか疑問に思いました。私はこのような何かを見つけることができませんでした:

var newList = list1 + list2;

無効です。

34
Alex

次を使用できます。

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];
67

多分もっと一貫して〜

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

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;

有効です:)

7
Daniel Robinson