IGrouping <tkey,telement> Totals

时间:2016-03-03 21:04:51

标签: c# linq

我有一个模特:

public class MyModel
{
    public string Name { get; set; }
    public string Type { get; set; }
    public int SqFeet { get; set; }
    public decimal Cost { get; set; }
    public decimal CostPerFoot { get; set; }
}

我有一个该模型的清单:

private List<MyModel> _myList;

public List<MyModel> MyList
{
    get { return _myList; }
    set
    {
        _myList = value;
        OnPropertyChanged();
    }
}

我在此列表中分组:

var groupBy = MyList.GroupBy(l => l.Name);

现在我的问题:是否可以在MyList中显示不同属性的不同总数;所以我要问的是我希望看到平均CostPerFoot的总英尺和总成本。我怎么能这样做?

1 个答案:

答案 0 :(得分:3)

您可以为每个组创建一个匿名类型的总计,其平均值为CostPerFoot,总和为SqFeet,总和为cost

var totals = MyList.GroupBy(l => l.Name).Select(g => new
{
    Name = g.Key,
    AverageCostPerFoot = g.Average(m => m.CostPerFoot),
    TotalFeet = g.Sum(m => m.SqFeet),
    TotalCost = g.Sum(m => m.Cost)
});