我有一个员工名单,我希望通过在C#中使用LINQ来获得薪水最低的员工的姓名

时间:2017-08-14 06:49:09

标签: c# linq

这是我的代码,我想简化它。

int minSalary = empList.Min(e => e.salary);
var emp = empList.Where(e => e.salary == minSalary).FirstOrDefault(); 
string empName = emp= != null ? emp= .Name : string.Empty;

3 个答案:

答案 0 :(得分:2)

您可以按工资订购集合,然后检索第一项是最小salary的项目。使用FirstOrDefault检索它,然后使用?. operator (C# 6.0)访问Name属性。 最后Name可能是null(如果FirstOrDefault返回null),请使用?? operator

string name = empList.OrderBy(e => e.salary).FirstOrDefault()?.Name ?? string.Empty;

对于Prior C#6.0:

var emp = empList.OrderBy(e => e.salary).FirstOrDefault();
var name = emp != null ? emp.Name : string.Empty;

答案 1 :(得分:1)

var employeeWithMinSalary = empList.OrderBy(e => e.Salary).FirstOrDefault();
string employeeWithMinSalaryName = employeeWithMinSalary?.Name;

答案 2 :(得分:1)

按工资对集合进行排序,然后选择员工姓名,如下所示:

var name = empList.OrderBy(e => e.salary)
                  .Select(e => e.Name)
                  .FirstOrDefault() ?? string.Empty;