C# 如何从LINQ查询中的两个求和字段得到一个除法值?
我有以下课程:C# 如何从LINQ查询中的两个求和字段得到一个除法值?,c#,linq,C#,Linq,我有以下课程: public partial class MemberTank { public int Id { get; set; } public string TankName { get; set; } public int Battles { get; set; } public int Victories { get; set; } } 我正在尝试构建一个LINQ,它会给我一个坦克名称列表,以及每辆坦克的胜利百分比。我知道我需要划分战斗和胜利的总和
public partial class MemberTank
{
public int Id { get; set; }
public string TankName { get; set; }
public int Battles { get; set; }
public int Victories { get; set; }
}
我正在尝试构建一个LINQ,它会给我一个坦克名称列表,以及每辆坦克的胜利百分比。我知道我需要划分战斗和胜利的总和,但我不知道怎么做
做一个或另一个的总和很容易
var sumVictories = (from p in db.MemberTanks
group p by p.TankName into g
select new {
Tank = g.Key,
Victories = g.Sum(p => p.Victories)
}).OrderByDescending(a => a.Victories);
。。。但我不知道如何将这两个字段相加,然后将它们除以,得到我需要的百分比。这应该可以
var sumVictories = (from p in memberTanks
group p by p.TankName
into g
select new
{
Tank = g.Key,
Victories = g.Sum(p => p.Victories),
Avg = ((double)g.Sum(p => p.Victories) / (double)g.Sum(p => p.Battles)) * 100
}).OrderByDescending(a => a.Victories);
[编辑]稍微清理了代码是否存在多个具有相同TankName的MemberTank实例?是。(我知道,数据有点不正常……但我对此无能为力)