Есть ли простой способ объединить два списка в Дарт?

Мне было интересно, есть ли простой способ объединить два списка в дротике, чтобы создать новый объект списка. Я не мог найти ничего и что-то вроде этого:

var newList = list1 + list2;

Недействительно.

Ответы

Ответ 1

Ты можешь использовать:

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

Ответ 2

может быть более последовательным ~

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

Ответ 3

Ответ 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;

Действительно:)

Ответ 4

Начиная с версии 2.4, вы можете объединить два списка, используя оператор +.

var newList = list1 + list2;