在LINQ中使用字符串将属性设置为orderby

本文关键字:属性 设置 orderby 字符串 LINQ | 更新日期: 2023-09-27 18:20:41

我有一个LINQ查询函数,设置如下:

public List<company> FetchSortedList(string cat)
{
   var aDTOList = (from s in db.companies
                   where s.category == cat
                   orderby s.name
                   select s).ToList();
}

我现在需要更改此函数,以允许用户传递另一个名为"字段"的参数,该参数将是一个字符串值,其中包含要排序的列表的属性名称。是否有类似于上述查询的方法,即:

 public List<company> FetchSortedList(string cat, string prop)
 {
    var aDTOList = (from s in db.companies
                    where s.category == cat
                    orderby s[prop]
                    select s).ToList();
 }

(我知道上面的代码不起作用,只是问是否有类似的事情)

还是我需要做其他事情?

在LINQ中使用字符串将属性设置为orderby

您需要构造一个看起来像x => x.SomePropertyToSortByExpression,并将其传递给OrderBy方法。