将重复的列表条目合并为一个,并在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

将重复的列表条目合并为一个,并在C#中显示数量

您可以使用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) });
相关文章: