我在字符串中有“按属性排序”的名称。我需要使用 Lambda/Linq 对对象列表进行排序。
前任:
public class Employee
{
public string FirstName {set; get;}
public string LastName {set; get;}
public DateTime DOB {set; get;}
}
public void Sort(ref List<Employee> list, string sortBy, string sortDirection)
{
//Example data:
//sortBy = "FirstName"
//sortDirection = "ASC" or "DESC"
if (sortBy == "FirstName")
{
list = list.OrderBy(x => x.FirstName).toList();
}
}
最佳答案
这可以作为
list.Sort( (emp1,emp2)=>emp1.FirstName.CompareTo(emp2.FirstName) );
.NET 框架将 lambda (emp1,emp2)=>int
转换为 Comparer<Employee>.
这具有强类型的优点。如果您需要降序/倒序,请反转参数。
list.Sort( (emp1,emp2)=>emp2.FirstName.CompareTo(emp1.FirstName) );
关于c# - 使用 Lambda/Linq to objects 对列表进行排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/722868/