【发布时间】:2021-01-02 23:11:07
【问题描述】:
我有一个实体如下。
学校详情
ID Name Rank School
1 A Lawrence
2 B 1 Lawrence
3 C 2 Lawrence
我需要获取特定学校(劳伦斯)中排名最高的学生的详细信息。在此示例中,ID 2 是所需的输出。
我的 linq 查询是:
var result = SchoolDetails.Where(x=>x.School == "Lawrence").Max(y=>y.Rank).SingleOrDefault();
我收到一条编译消息说“int?不包含 SingleOrDefault 的定义”
我无法更改 Rank 列的数据类型以使其不可为空,因为它是生产代码。 那么,在这种情况下,我该如何获取排名最高的记录?
【问题讨论】:
-
你不需要
SingleOrDefault,使用Maxmax 返回最大值int?而不是List -
在
.Max之前过滤null值 -
@MohammadAli:我需要获取整个对象。
-
@user1907849 您可以按排名降序排列并获取第一个元素