C# 使用Linq查找范围内的总天数

C# 使用Linq查找范围内的总天数,c#,linq,C#,Linq,我必须根据发送日期值找到0-30天的范围。它需要根据currentDate计算。我已经完成了下面的代码。我需要确认它是否正确 query = query .Where(x => (int)(EntityFunctions.DiffDays(currentDate, (DateTime)x.DATE_SENT)) >= 0 && (int)(EntityFunctions.DiffDays(currentDate, (DateTime)x.DATE_

我必须根据发送日期值找到0-30天的范围。它需要根据
currentDate
计算。我已经完成了下面的代码。我需要确认它是否正确

query = query
   .Where(x => (int)(EntityFunctions.DiffDays(currentDate, (DateTime)x.DATE_SENT)) >= 0 
      && (int)(EntityFunctions.DiffDays(currentDate, (DateTime)x.DATE_SENT)) <= 30); 
query=query
其中(x=>(int)(EntityFunctions.DiffDays(currentDate,(DateTime)x.DATE_SENT))>=0

&&(int)(EntityFunctions.DiffDays(currentDate,(DateTime)x.DATE_SENT))您可以创建可枚举范围:

DateTime start = DateTime.Now; // Or an other date
DateTime end = start.AddDays(30);
var DateRange =  Enumerable.Range(0, 1 + end.Subtract(start).Days)
                  .Select(offset => start.AddDays(offset))
                  .ToArray();

如果
currentDate
是一个局部变量,则最好计算开始和结束日期,并使用
x.date\u SENT>=startDate&&x.date\u SENT。您是否测试过它?在数据库中有一些值,一些值高于阈值,一些值低于阈值并进行测试。如果您已经决定使用
DiffDats(),请注意
然后使用查询语法和
let
,这样您就不需要编写这个twice@GiladGreenSQL优化器将确保它不会实际运行两次。您的建议只会防止他需要键入两次。我正在使用查询语法。我需要找到从发送日期算起的天数-当前日期>=0,我真的这样做了不明白您需要什么作为输出,是否需要根据天数是否不同于0-30范围来比较并返回真/假?能否提供一个示例来说明示例值?