合并重复的列表项并求和它们的第二个值(2D对象列表)



所以,基本上我已经创建了一个对象实例,并在其中添加了项目:

public Product(string barcode, int quantity)
{
Barcode = barcode;
Quantity = quantity;
}
List<Product> liste1 = new List<Product>();
liste1.add("Barcode 1", 1);
liste1.add("Barcode 2", 1);
liste1.add("Barcode 1", 3);
liste1.add("Barcode 2", 2);

我想合并并删除重复的对象,并将它们的数量求和成一个新的列表,如下所示:

barcode = "Barcode 1", quantity = 4
barcode = "Barcode 2", quantity = 3

而不是这些:

barcode = "Barcode 1", quantity = 1
barcode = "Barcode 2", quantity = 1
barcode = "Barcode 1", quantity = 3
barcode = "Barcode 2", quantity = 2

好吧,简单分组应该可以:

liste1
.GroupBy(x => x.Barcode)
.Select(g => new Product() 
{
Barcode = g.Key, 
Quantity = g.Select(x => x.Quantity).Sum() 
});

最好在这里使用Dictionary和check contains key。所以每次你想添加新产品的时候,只要在

if (dictionary.ContainsKey("product"))
{
dictionary["product"] = dictionary["product"] + quantity;
}else{
dictionary.Add("product", quantity);
}

相关内容

  • 没有找到相关文章

最新更新