linq时间筛选以及list时间筛选

Posted Danlis

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linq时间筛选以及list时间筛选相关的知识,希望对你有一定的参考价值。

Linq的时间筛选

//写法一:正常
IEnumerable<x> xList = dbContext.xs.OrderByDescending(u => u.CreateTime).Where(u => EntityFunctions.DiffDays(u.CreateTime, DateTime.Now) == 0);
//写法二:错误
IEnumerable<x> xList = dbContext.xs.OrderByDescending(u => u.CreateTime);
xList = xList.Where(u => EntityFunctions.DiffDays(u.CreateTime, DateTime.Now) == 0);
写法二中,在使用EntityFunctions的时候,xList对象已经是Ienumerable的类型了,是无法使用linq自带的EntityFunctions方法的,所以会报错,具体意思就是不识别这个方法

 

List的时间筛选,这里有一点是DateTime中的Date是表示日期,例如今天2017/10/17 9:45.0,Date处理后的结果就是 2017/10/17 0:00:0

#region List获取
            List<TestObj> list = new List<TestObj>();
            for (int i = 0; i < 4; i++)
            {
                TestObj temp = new TestObj() { ID = i, CreateTime = DateTime.Now.AddYears(-i).AddDays(i) };
                list.Add(temp);
            }
           Console.WriteLine( SerializationHelper.JsonSerialize(list.Where(u => DateTime.Compare(u.CreateTime.Date, DateTime.Now.AddYears(-1).AddDays(1).Date) == 0).ToList()));
           Console.WriteLine( DateTime.Now.Date);
            #endregion

 

以上是关于linq时间筛选以及list时间筛选的主要内容,如果未能解决你的问题,请参考以下文章

操作LINQ 中 怎么 Select Tuple 类的值?

AdvancedDataGridView 排序和筛选不起作用

网站优化性能

如何通过linqdatasource的where筛选日期在某时间段的记录?

LINQ基础

SQLite的LIKE语句实现字符片段筛选的功能