如何基于onjects属性连接两个对象列表并创建新列表
例如:
我有两个班级列表
List<Product_name> name = [Product_name(1,'Product1'),Product_name(2,'Product2'),Product_name(3,'Product3')];
List<Prod_desc> desc =[Prod_desc(1,'Desc1'),Prod_desc(2,'Desc2')];
当Product
中的产品ID与product_name
中的product_id
匹配时,我需要创建product_desc
类型的新列表
class Product_name{
int product_id;
String product_name;
Product_name(this.product_id,this.product_name);
}
class Prod_desc{
int product_id;
String prod_desc;
Prod_desc(this.product_id,this.prod_desc);
}
class Product{
int product_id;
String product_name;
String prod_desc;
Product(this.product_id,this.product_name,this.prod_desc);
}
答案 0 :(得分:0)
初始化一个空列表
List<Product> productList = [];
遍历数组中的每个元素以找出匹配的项目并将其添加到列表中
name.forEach((item) {
desc.forEach((productDesc) {
if (item.product_id == productDesc.product_id) {
productList.add(Product(
item.product_id,
item.product_name,
productDesc.prod_desc,
));
}
});
});
答案 1 :(得分:0)
考虑构建一个Map
来按ID查找说明。
var descriptionsById = {for (var d in desc) d.id: d.description};
var products = [
for (var n in names) Product(n.id, n.name, descriptionsById[n.id]),
];