Je me demandais s'il y avait un moyen facile de combiner deux listes dans Dart pour créer un nouvel objet liste. Je n'ai rien trouvé et quelque chose comme ça:
var newList = list1 + list2;
N'est pas valide.
Vous pouvez utiliser:
var newList = new List.from(list1)..addAll(list2);
Si vous avez plusieurs listes, vous pouvez utiliser:
var newList = [list1, list2, list3].expand((x) => x).toList()
Depuis Dart 2, vous pouvez désormais utiliser +
:
var newList = list1 + list2 + list3;
Depuis Dart 2.3, vous pouvez utiliser l'opérateur d'étalement:
var newList = [...list1, ...list2, ...list3];
peut-être plus cohérent ~
var list = []..addAll(list1)..addAll(list2);
La réponse d'Alexandres est la meilleure mais si vous vouliez utiliser + comme dans votre exemple, vous pouvez utiliser la surcharge de l'opérateur 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
}
}
Ensuite:
var newMyList = myList1 + myList2;
Est valable :)
Si vous souhaitez fusionner deux listes et supprimer les doublons, vous pouvez:
var newList = [...list1, ...list2].toSet().toList();
Dart now supporte concaténation des listes en utilisant le +
opérateur.
Exemple:
List<int> result = [0, 1, 2] + [3, 4, 5];