c# - 为什么 orderBy 不适用于此 linq 表达式?

标签 c# linq entity-framework

我正在尝试按日期时间字段排序,这是一个包含以下对象的列表:

    // Order search results (posts to be displayed by created datetime).
   if (implicitSelectedVisualiser.PostsSortOrder == PostsSortOrder.CREATED_DATE_ASC)
      approvedSearchResults.OrderBy(s => s.PostCreatedTime);
   else
      approvedSearchResults.OrderByDescending(s => s.PostCreatedTime);

问题是什么都没有排序。

初始顺序是:

2013-06-28 19:52:08.000
2013-06-28 19:38:30.000
2013-06-28 18:35:37.000
2013-06-29 17:07:22.000
2013-07-01 19:12:44.000
2013-07-01 19:15:29.000
2013-07-01 23:51:11.000

从上方排序后(按 DESC 排序),它保持相同,而这在 SQL 中完美运行。

SELECT [PostCreatedTime]
FROM [SearchResults]
Where SearchQuery_Id = 10 or SearchQuery_Id = 7
Order by PostCreatedTime desc

2013-07-01 23:51:11.000
2013-07-01 19:15:29.000
2013-07-01 19:12:44.000
2013-06-29 17:07:22.000
2013-06-28 19:52:08.000
2013-06-28 19:38:30.000
2013-06-28 18:35:37.000

我在我的 linq 中犯了什么错误?

最佳答案

我认为 OrderBy 方法返回一个集合,而不是对给定集合进行排序。尝试将其更改为以下内容:

var orderedList = approvedSearchResults.OrderBy(s => s.PostCreatedTime);

关于c# - 为什么 orderBy 不适用于此 linq 表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17446351/

相关文章:

c# - 使用 linq 和 Entityframework 实现高级搜索的最佳实践

c# - mongo.linq 与 c# linq 之间的区别

c# - Entity Framework 的集合值参数?

c# - 使用.net core时应该如何存储 Entity Framework 6连接字符串

c# - cookie 在 c# 中不会过期

c# - 我的 C# Windows 窗体应用程序和 azure

c# - 如何获取原型(prototype)文件来引用另一个原型(prototype)中定义的消息?

c# - 使用 linq 在列上运行计数

c# - 对同一实体同时使用多对多和一对多

c# - Graphics.DrawString() 和比例字体的前导填充空间