我有一个清单,其中:
public class ListContent
{
public string OrderName { get; set; }
public int OrderNumber { get; set; }
}
如果OrderName在列表中更常见,我想添加OrderNumber's
答案 0 :(得分:1)
您可以使用LINQ完成所有操作:
例如
var groupedOrders = orders.GroupBy(o => o.OrderName)
.Select(g => new ListContent {
OrderName = g.Key,
OrderValue = g.Sum(o => o.OrderValue)
})
.ToList();
您也可能会更加聪明,不要在已经只有那个OrderName的地方构造一个新的ListContent,但这是更容易理解的版本。
答案 1 :(得分:0)
如果您的列表包含多个相同的OrderName
,则可以使用group
。然后,您可以像这样在同一组中的所有sum
中提取OrderNumber
,
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
的列表。
然后您可以使用上面的result
打印它的项目值,例如
foreach (var item in result)
{
Console.WriteLine("OrderName: " + item.OrderName);
Console.WriteLine("Total: " + item.Total);
}