加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何在Linq订购日期?

发布时间:2020-12-15 18:22:48 所属栏目:百科 来源:网络整理
导读:我正在使用C#和LINQ,我在Date类型中有一些Date 目前我正在使用此脚本按开始日期,从早期到最晚来订购列表. 使用以下代码,我的事件未排序: events.OrderBy(x = x.DateTimeStart).ToList(); return events.AsQueryable(); 这可能有什么问题? 解决方法 events.
我正在使用C#和LINQ,我在Date类型中有一些Date

目前我正在使用此脚本按开始日期,从早期到最晚来订购列表.

使用以下代码,我的事件未排序:

events.OrderBy(x => x.DateTimeStart).ToList();    
      return events.AsQueryable();

这可能有什么问题?

解决方法

events.OrderBy(x => x.DateTimeStart):声明一个按属性DateTimeStart对事件进行排序的查询.查询尚未执行.

events.OrderBy(x => x.DateTimeStart).ToList();:处理上一个查询.迭代所有事件,检查他们的DateTimeStart,将它们和安全结果排序为List然后……丢弃结果!因为你不安全.将它与类似的东西进行比较:

int a = 0;
a + 1;
b = a; // b is 0

return events.AsQueryable();:在这里,您将返回原始事件而不是已排序.

您应该按如下方式编写代码:

return events.OrderBy(x => x.DateTimeStart).ToList().AsQueryable();

该版本将创建已排序事件的静态列表.如果现在您更改了事件列表,则结果将不会考虑您的更改.

第二个解决方案是:

return events.OrderBy(x => x.DateTimeStart).AsQueryable();

该版本不起作用.它只是声明一种对事件进行排序的方式,并将该方式返回为IQueryable.如果在将来的代码中使用返回值,它将始终包含所有已排序的事件,即使您在使用之前添加新事件也是如此.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读