C# 如何使用Linq查询查找分数范围(没有最大分数)
我有一个表级和C# 如何使用Linq查询查找分数范围(没有最大分数),c#,linq,C#,Linq,我有一个表级和 >Id Grade Name MinScore 1 A 90 2 B 70 3 C 60 4 D 50 如何使用linq查询(我没有字段最大分数)找到65/62分为“C”的成绩实现这一目标的最短方法是: var mark = 65; //'grades' represents the table var letter = grades.Where(x =>
>Id Grade Name MinScore
1 A 90
2 B 70
3 C 60
4 D 50
如何使用linq查询(我没有字段最大分数)找到65/62分为“C”的成绩实现这一目标的最短方法是:
var mark = 65;
//'grades' represents the table
var letter = grades.Where(x => mark > x.MinScore).Min(x => x.GradeName);
:首先只过滤分数高于最低分数的项目.Where()
:然后取剩余项目的最低等级名称.Min()
var mark = grades.Where(x => mark > x.MinScore)
.OrderByDescending(x => x.MinScore)
.FirstOrDefault()?.GradeName;
:首先只过滤分数高于最低分数的项目.Where()
:按从高到低的顺序排列项目.OrderByDescending()
:从结果中获取第一项.FirstOrDefault()
- 获取
属性GradeName
注意那行代码中的
?
,这是一个 不明白:标记65/62为“C”。请详细说明can@TejasVaishnav当前位置我相信这些是分数阈值。90或以上是A,70到89是B,60到69是C,50到59是D。不确定如果低于50会发生什么…第二位代码还有一个优点,它可以更好地处理分数低于50的情况。