Есть ли простой способ объединить два списка в Дарт?
Мне было интересно, есть ли простой способ объединить два списка в дротике, чтобы создать новый объект списка. Я не мог найти ничего и что-то вроде этого:
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;