一尘不染

如何动态指定Linq OrderBy参数?

c#

如何orderby使用我作为参数的值指定传递给参数的参数?

例如:

List<Student> existingStudends = new List<Student>{ new Student {...}, new Student {...}}

目前执行:

List<Student> orderbyAddress = existingStudends.OrderBy(c => c.Address).ToList();

而不是c.Address,我如何将其作为参数?

 string param = "City";
 List<Student> orderbyAddress = existingStudends.OrderByDescending(c => param).ToList();

阅读 369

收藏
2020-05-19

共1个答案

一尘不染

这是使用反射的可能性…

var param = "Address";    
var propertyInfo = typeof(Student).GetProperty(param);    
var orderByAddress = items.OrderBy(x => propertyInfo.GetValue(x, null));
2020-05-19