как избежать дубликатов при добавлении в список моделя?
есть такой модель продукта:
import 'dart:convert';
List<Product> productFromJson(String str) =>
List<Product>.from(json.decode(str).map((x) => Product.fromJson(x)));
String productToJson(List<Product> data) =>
json.encode(List<dynamic>.from(data.map((x) => x.toJson())));
class Product {
Product({
this.id,
this.name,
this.categoryName,
this.categoryId,
this.description,
this.price,
this.imgMedium,
});
int id;
String name;
dynamic categoryName;
dynamic categoryId;
dynamic description;
double price;
String imgMedium;
Product copyWith({
int id,
String name,
dynamic categoryName,
dynamic categoryId,
dynamic description,
double price,
String imgMedium,
}) =>
Product(
id: id ?? this.id,
name: name ?? this.name,
categoryName: categoryName ?? this.categoryName,
categoryId: categoryId ?? this.categoryId,
description: description ?? this.description,
price: price ?? this.price,
imgMedium: imgMedium ?? this.imgMedium,
);
factory Product.fromJson(Map<String, dynamic> json) => Product(
id: json["id"],
name: json["name"],
categoryName:
json["categoryName"] == null ? null : json["categoryName"],
categoryId: json["categoryId"] == null ? null : json["categoryId"],
description: json["description"],
price: json["price"],
imgMedium: json["imgMedium"],
);
Map<String, dynamic> toJson() => {
"id": id,
"name": name,
"categoryName": categoryName,
"categoryId": categoryId,
"description": description,
"price": price,
"imgMedium": imgMedium,
};
}
вот список продуктов в которую я буду добавлять загруженные продукты с API
List<Product> productList;
вот код который я добавляю продукты в список после получения ответа от API:
List jsonData = jsonDecode(value.result)["data"]["content"];
productList.addAll(productFromJson(jsonEncode(uniqueList).toString()));
после добавления встречаются одинаковые продукты, мне нужно избавиться в списке от них, как это прописать?
Ответы (1 шт):
Автор решения: MiT
→ Ссылка
Вместо List<Product> productList; используйте Set<Product> productList;
Set представляет неупорядоченный набор уникальных объектов.
Чтобы преобразовать productList в List, достаточно воспользоваться методом .toList().