c# - 使用 LINQ 对 IEnumerable 进行排序

标签 c# linq sorting sql-order-by

SO 上有很多类似的问题,但我没有看到适合我情况的问题......

我想知道为什么这对 Premise 对象的 IEnumerable 排序不起作用:

sortedPremiseList = from p in premiseList
                 orderby (string.Format("{0} {1}", orderBy, sortOrder))
                  select p;

我正在为 orderBy 参数传递有效的 p.property 并为 sortOrder 参数传递“升序”或“降序”

如果我不能像这样以有限的方式“动态化”我的 LINQ,那么除了丑陋的 Switch 语句或类似的东西之外还有什么选择?

非常感谢您的宝贵时间。

最佳答案

我认为您结合了查询表示法和点表示法。为此,请尝试只使用点符号:

sortedPremiseList = premiseList
           .OrderBy(p => string.Format("{0} {1}", p.orderBy, p.sortOrder));

关于c# - 使用 LINQ 对 IEnumerable 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8651860/

相关文章:

c# - foreach 循环 GroupBox 中的 TextBox 以相反的顺序迭代?

C# - 用于 Windows 窗体应用程序位图的 SetPixel 和 GetPixel 的更快替代方案

c# - NHibernate 拦截器不工作

c# - 我可以避免对简单的 Linq to Entities 投影进行嵌套 SQL 查询吗?

c# - 将 SelectedItems 转换为 IEnumerable<MyType>

c# - 在 HTTPS 上设置站点后,不允许子操作执行重定向操作

c# - 如何使用 C# 合并 2 个 XML 文件

java按可指定的属性对对象列表进行排序

Laravel Collection - 将特定项目放在最后位置

java - 对类的数组进行冒泡排序