как объединить несколько списков в один? дротик - PullRequest
1 голос
/ 07 апреля 2020

У меня есть

class shop {
int id;
String name;
List<Product> products;
}

class Product {
int id;
String productName;
}

, где каждый магазин имеет свои товары, как объединить все товары в одном списке, как создать Список всех товаров

Ответы [ 2 ]

0 голосов
/ 07 апреля 2020

Вы можете объединить списки, используя + или оператор распространения

Используя Оператор сложения:

List<shop> shops = [shop1, shop2];
List<Product> products = shop1.products + shop2.products;

Использование Оператор спреда:

List<Product> products = [...shop1.products, ...shop2.products];

Редактировать

Вам необходимо сделать это следующим образом:

List<shop> shops = [shop1, shop2,...];
List<Product> mergedProducts = []
for(int i = 0; i < shops.length; i++){
    mergedProducts = mergedProducts + shops[i].products;
}
0 голосов
/ 07 апреля 2020

Вы можете просто объединить Lists с оператором +:

List<Product> list1 = ...;
List<Product> list2 = ...;
List<Product> list3 = ...;

List<Product> mergedList = list1 + list2 + list3;

Кроме того, Dart 2.3 и выше поддерживает оператор распространения, который может использоваться следующим образом:

List<Product> mergedList2 = [...list1, ...list2, ...list3];

Для динамического c количества магазинов вы можете использовать basi c forEach:

List<Shop> shops = ...;

List<Product> mergedList = List();

shops.forEach((shop) => mergedList.addAll(shop.products));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...