C# 使用Linq查找第三个最大薪资

C# 使用Linq查找第三个最大薪资,c#,linq,C#,Linq,我正在学习LINQ,我想用LINQ找到第三个最高工资。我知道如何查询集合,但我无法解决此问题 void Main() { List<Employee> employees = new List<Employee>(); employees.Add(new Employee { Id = 1, Name = "John Doe", Salary = 1500 }); employees.Add(new Employee { Id = 1, Name

我正在学习LINQ,我想用LINQ找到第三个最高工资。我知道如何查询集合,但我无法解决此问题

void Main()
{
    List<Employee> employees = new List<Employee>();
    employees.Add(new Employee { Id = 1, Name = "John Doe", Salary = 1500 });
    employees.Add(new Employee { Id = 1, Name = "John Wow", Salary = 10000 });
    employees.Add(new Employee { Id = 1, Name = "Bill", Salary = 1000 });
    employees.Add(new Employee { Id = 1, Name = "Jane Doe", Salary = 2000 });

    var secondHighestSalary=from e in employees
                select e ----

}

public class Employee
{
    public int Id { get; set; }
    public string Name { get; set; }
    public double Salary { get; set; }
}

您可以尝试以下代码段

List<Employee> employees = new List<Employee>();
    employees.Add(new Employee { Id = 1, Name = "John Doe", Salary = 1500 });
    employees.Add(new Employee { Id = 1, Name = "John Wow", Salary = 1800 });
    employees.Add(new Employee { Id = 1, Name = "Bill", Salary = 1000 });
    employees.Add(new Employee { Id = 1, Name = "Jane Doe", Salary = 2000 });

    var secondHighestSalary=employees.OrderByDescending(e => e.Salary)
            .Skip(2)
            .Take(1);
secondHighestSalary.Dump();

一个简单的解决方案是对列表进行排序并获取第三项。我正在使用Linqpad Dump作为Linqpad的一部分。如果使用visual studio,只需删除Dump方法即可