嗨,我用顺序Linq从员工那里获得第N高的薪水
var ThirdHighestSal = from vr in Employee.getAllEmployee()
group vr by vr.Salary into gr
orderby gr.Key descending
select( new {salary=gr.OrderBy(x=>x.Salary).Skip(2).First()});
foreach (var sal in ThirdHighestSal)
{
Console.WriteLine("3rd highest sal is {0}",sal.salary);
}
当我执行它时,它抛出异常
序列不包含任何元素(InvalidOperationException已取消处理)
有人能帮我查询一下吗?
2条答案
按热度按时间5sxhfpxr1#
使用FirstOrDefault而不是First,如果找不到元素,则会得到一个空对象。
使用lamda,您可以写:
那么你得到的是null或者(如果存在的话)第三高的薪水。
dddzy1tm2#