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

C# 在LINQ中使用字符串将属性设置为orderby,c#,linq,C#,Linq,我有一个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 F

我有一个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 FetchSortedList(字符串cat)
{
var aDTOList=(来自db.companys中的s)
其中s.category==cat
orderby s.name
选择s.ToList();
}
现在,我需要更改此函数,以允许用户传递另一个名为“field”的参数,该参数将是一个字符串值,其中包含列表要排序的属性名称。是否有类似于上述查询的操作,即:

 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();
 }
public List FetchSortedList(字符串cat,字符串prop)
{
var aDTOList=(来自db.companys中的s)
其中s.category==cat
订购人s[prop]
选择s.ToList();
}
(我知道上面的代码不起作用,只是询问是否有类似的操作)


或者我需要做其他事情吗?

你需要构造一个
表达式
,它应该看起来像
x=>x.SomePropertyToSortBy
并将其传递给
OrderBy
方法。

看看动态Linq和重复的问题谢谢我四处查看了一下,但我认为我一定使用了错误的措辞,我将研究这两个问题。