C# 如何计算具有相同(键)名称的列表值
我有一份清单,上面有:C# 如何计算具有相同(键)名称的列表值,c#,C#,我有一份清单,上面有: public class ListContent { public string OrderName { get; set; } public int OrderNumber { get; set; } } 如果订单名在列表中更常见,我想添加订单号您可以使用LINQ完成这一切: 从LINQ开始,在OrderName上分组 现在您有了一个组列表,每个订单名一个,其中包含具有该订单名的所有ListContent结
public class ListContent
{
public string OrderName { get; set; }
public int OrderNumber { get; set; }
}
如果订单名在列表中更常见,我想添加订单号您可以使用LINQ完成这一切:
- 从LINQ开始,在OrderName上分组
- 现在您有了一个组列表,每个订单名一个,其中包含具有该订单名的所有ListContent结构。然后,您可以将这些内容相加为一个新的聚合ListContent
您也可以稍微聪明一点,不必在只有一个具有该OrderName的列表内容的地方构建新的ListContent,但这是一个更容易理解的版本。如果您的列表包含多个相同的
OrderName
,那么您可以进行分组。然后您可以对同一组中的所有OrderNumber
进行sum
,如
var result = (from o in listContents
group o by o.OrderName into grp
select new
{
OrderName = grp.Key,
Total = grp.Select(x => x.OrderNumber).Sum()
}).ToList();
其中listContents
是类ListContent
的列表
然后您可以使用上面的结果
打印它的项目值,如
foreach (var item in result)
{
Console.WriteLine("OrderName: " + item.OrderName);
Console.WriteLine("Total: " + item.Total);
}
foreach (var item in result)
{
Console.WriteLine("OrderName: " + item.OrderName);
Console.WriteLine("Total: " + item.Total);
}