gpt4 book ai didi

c# - Linq to SQL 中的多值比较

转载 作者:行者123 更新时间:2023-11-30 16:19:35 24 4
gpt4 key购买 nike

有没有人有更简洁的方法来使用 linq to entities 来做到这一点?

我正在尝试获取每个组中具有最高 X、Y 或 Z 的项目,例如最大值( X, Y, Z )

var points = from g in groupedData
from ep in g
where (ep.X > ep.Y ?
ep.X > ep.Z ? ep.X : ep.Z
: ep.Y > ep.Z ? ep.Y : ep.Z)
== g.Max(e => e.X > e.Y ?
e.X > e.Z ? e.X : e.Z
: e.Y > e.Z ? e.Y : e.Z)
select ep;

最佳答案

var points = from g in groupedData
let gMax = g.Max(e => e.X > e.Y ?
(e.X > e.Z ? e.X : e.Z)
: (e.Y > e.Z ? e.Y : e.Z))
from ep in g
where ep.X == gMax
|| ep.Y == gMax
|| ep.Z == gMax
select ep;

PS:Linq2SQL 还是 Linq2Entities?因为你标记了“EF”!

编辑:我刚刚测试成功了:

var points = from g in groupedData
let gMax = g.Max(e => new int[] { e.X, e.Y, e.Z }.Max())
from ep in g
where ep.X == gMax
|| ep.Y == gMax
|| ep.Z == gMax
select ep;

您确认它适用于您的情况吗?

关于c# - Linq to SQL 中的多值比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15140035/

24 4 0
文章推荐: c# - 将对象转换为自定义列表
文章推荐: c - 如何从 .t​​xt 文件读取文本,然后将其存储在记录(数据结构)中?
文章推荐: c - 如何添加扫描端口ip
文章推荐: c# - 使用