我正在使用 LINQPad
来评估我的 linq 查询。我的查询是这样的:
from o in MyTableFirst
join p in MyTableSecond on o.TheName equals p.TheName
where p.TheName == "CBA-123" && !p.Removed &&
(o.ReturnPeriod ==100 || o.ReturnPeriod ==10)
select new {
HMax1 = o.MaxValue1,
HMax2 = o.MaxValue2,
HMax3 = o.MaxValue3
}
此查询可以返回 0 或一定数量的行。
在 LINQPad 中,它返回如下内容:
HMax1 HMax2 HMax3
21.1 空 22.5
空 24.6 11.5
现在,我如何获取这些返回行和列的最大值?
我预计 24.6 返回。
谢谢
最佳答案
这个怎么样:
(from o in db.MyTableFirsts
join p in db.MyTableSeconds on o.TheName equals p.TheName
where p.TheName == "CBA-123" && !p.Removed &&
(o.ReturnPeriod == 100 || o.ReturnPeriod == 10)
select new
{
Maximum = Math.Max(
Math.Max((float)(o.MaxValue1 ?? 0), (float)(o.MaxValue2 ?? 0)),
(float)(o.MaxValue3 ?? 0)
)
}).OrderByDescending(o => o.Maximum).FirstOrDefault();
或者可以使用 .Max(o => o) 代替 .OrderByDescending(o => o.Maximum).FirstOrDefault()
关于linq - 使用 LINQ 从多行多列中获取最大值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15962396/