如何使用LINQ查询从Employee表和salary表中计算第五最高工资

如何使用LINQ查询从Employee表和salary表中计算第五最高工资,linq,Linq,表1:EmolyeeTable Eid Ename 1 Jonh 2 James 3 Raj 4 Tisan 5 Jack 表2:工资表 Sid Salary Eid 1 10000 1 2 20000 2 3 30000 3 4 40000 4 5 50000 5 我想使用LINQ查询输出第五个heighest Ename和salary O/p: 您可以使用: 连接

表1:EmolyeeTable

Eid  Ename

1    Jonh   
2    James
3    Raj
4    Tisan
5    Jack
表2:工资表

Sid   Salary  Eid

1     10000    1

2     20000    2

3     30000    3

4     40000    4

5     50000    5
我想使用LINQ查询输出第五个heighest Ename和salary

O/p:

您可以使用:

连接两个表 按工资对会员进行分类 携带一定数量的物品 示例:您需要添加足够的检查:


目前还不清楚你是在寻找最高工资还是第五高工资。在这两种情况下,您都可以使用Join和OrderBy

为了最高的薪水,你可以这样做

var result = employees.Join(salaries,e=>e.Eid,s=>s.Eid,(e,s)=> new {Name=e.EName,Salary=s.Salary})
                          .OrderByDescending(x=>x.Salary).First();
对于第五高的薪水,你可以使用Skip,除此之外。比如说,

var result = employees.Join(salaries,e=>e.Eid,s=>s.Eid,(e,s)=> new {Name=e.EName,Salary=s.Salary})
                          .OrderByDescending(x=>x.Salary).Skip(4).First();
var result = employees.Join(salaries,e=>e.Eid,s=>s.Eid,(e,s)=> new {Name=e.EName,Salary=s.Salary})
                          .OrderByDescending(x=>x.Salary).First();
var result = employees.Join(salaries,e=>e.Eid,s=>s.Eid,(e,s)=> new {Name=e.EName,Salary=s.Salary})
                          .OrderByDescending(x=>x.Salary).Skip(4).First();