gpt4 book ai didi

LINQ - 如果未找到行,则从具有最大值的字段返回值

转载 作者:行者123 更新时间:2023-12-04 07:09:14 24 4
gpt4 key购买 nike

我有一张这样的 table ...

ID   Description  LowThreshold   HighThreshold
1 BAD 0.0 .69
2 MEETS .70 .89
3 GOOD .90 2

这里的目标是编写一个 LINQ 查询,该查询将根据给定的十进制选择正确的描述。例如 .75 介于 .70 和 .89 之间,因此它会返回“MEETS”。但是,关键是,如果数字高于所有范围,则自动返回具有最高 HighThreshold 的记录的描述。所以,如果我通过 5,我应该得到“GOOD”的返回。

到目前为止,我有这个,但它的分数高于 2,显然是错误的:
private string GetEvaluationDescription (decimal score)
{
string evaluationText = myContext.PerformanceRanges.Where
(e =>
e.LowThreshold <= score
&&
e.HighThreshold >= score
)
.Select(eval => eval.Description).First().ToString();
}

我想只用这个查询来完成这个,但我的想象力并没有让我到达那里。我尝试了在 this 中发现的内容发布但无法让它工作

最佳答案

那这个呢:

var range = myContext.PerformanceRanges
.SingleOrDefault(e=>e.LowThreshold <= score && e.HighThreshold >= score)??
PerformanceRanges.Single(
e=>e.HighThreshold == PerformanceRanges
.Max(p=> p.HighThreshold)
);

string evaluationText = range.Description;
range查询将选择与 Thereshold 范围匹配的元素,如果值更大(第一个查询将返回 null),它将选择最大的范围。

关于LINQ - 如果未找到行,则从具有最大值的字段返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/640857/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com