将重复的列表条目合并为一个,并在C#中显示数量
本文关键字:并在 一个 显示 列表 合并 | 更新日期: 2023-09-27 18:23:59
我有一个列表如下。
List<Product> productList = new List<Product>();
Product类如下所示。
public class Product
{
public int ID { get; set; }
public string ProductName { get; set; }
public int Quantity { get; set; }
}
现在,如果用户插入由ID标识的重复列表条目,我将如何按照合并它
Product Name Qty
Coke 2
Pepsi 7
您可以使用LINQ构建一组新产品:
var results = productList
.GroupBy(p => p.ID)
.Select(g => new Product { ID = g.Key, ProductName = g.First().ProductName, Quantity = g.Sum(i => i.Quantity) })
.ToList();
如果你只需要产品名称和数量,你可以使用:
var results = productList
.GroupBy(p => p.ProductName)
.Select(g => new { ProductName = g.Key, Quantity = g.Sum() });
foreach(var product in results)
{
Console.WriteLine("{0} {1}", product.ProductName, product.Quantity);
}
var result = productList.GroupBy(p => p.ID)
.Select(g => new Product {
ProductName = g.First().ProductName,
Quantity = g.Sum(p => p.Quantity) });