C# 如何根据参数按ASC排序或描述LINQ中的特定列

C# 如何根据参数按ASC排序或描述LINQ中的特定列,c#,linq,C#,Linq,我正在使用以下LINQ查询生成一个结果: var field = "FirstName"; // or "LastName" var type = "asc"; // or "desc" var result = (from x in db.ContactSet select new { x.FirstName, x.LastName })

我正在使用以下LINQ查询生成一个
结果

var field = "FirstName"; // or "LastName"
var type = "asc"; // or "desc"

var result = (from x in db.ContactSet
              select new
              {
                  x.FirstName,
                  x.LastName
              }).ToList();
对于
字段
变量,我需要
orderby
asc
desc
(基于
类型
变量)

我怎样才能以干净的方式做到这一点

编辑:副本中提到的问题不能回答此问题。

使用

然后你可以写这样的东西

var field = "FirstName"; // or "LastName"
var type = "ascending"; // or "descending" <-- full 

var result = (from x in db.ContactSet
          select new
          {
              x.FirstName,
              x.LastName
          }).ToList();

result = result.OrderBy(field + " " + type).ToList();
var field=“FirstName”;//或“姓氏”
var type=“升序”//或“下降”使用

然后你可以写这样的东西

var field = "FirstName"; // or "LastName"
var type = "ascending"; // or "descending" <-- full 

var result = (from x in db.ContactSet
          select new
          {
              x.FirstName,
              x.LastName
          }).ToList();

result = result.OrderBy(field + " " + type).ToList();
var field=“FirstName”;//或“姓氏”

var type=“升序”//或者“降序”可能的重复项如果您在编译时知道字段名,为什么要将排序列名指定为动态的?我只在运行时知道它们,我只是为了简单起见才把它们放在那里。顺便说一句,我会坚持@markoJuv给出的解决方案,重复问题中的第二个答案与您接受的答案完全相同。如果您在编译时知道字段名,为什么要将排序列名指定为动态?我只在运行时知道它们,我只是为了简单起见才将它们放在那里。顺便提一下,我会坚持@markoJuv给出的解决方案,重复问题中的第二个答案与您接受的答案完全相同。答案所要求的@BarryMichaelDoyle方法的类型参数(如他所解释的)我必须快速出发,所以我只能在两小时后再次回来时才能检查。我不知道我需要一个包裹。感谢您的澄清。答案要求@BarryMichaelDoyle方法的类型参数(如他所解释的)我必须尽快出发,所以我只能在两小时后再次回来时检查。我不知道我需要一个包裹。谢谢你的澄清。