【发布时间】:2013-03-15 17:05:55
【问题描述】:
我有许多包含日期时间的对象。我发现我正在重用 lambda 语句:
Where(x => EntityFunctions.TruncateTime(x.Date.Value) >= EntityFunctions.TruncateTime(startDate) &&
EntityFunctions.TruncateTime(x.Date.Value) <= EntityFunctions.TruncateTime(endDate));
在许多地方。我想用一个谓词替换这个表达式,这个谓词可以在我的对象列表中使用。
【问题讨论】:
-
请不要只要求我们为您解决问题。向我们展示您是如何尝试自己解决问题的,然后向我们确切地展示结果是什么,并告诉我们您为什么觉得它不起作用。请参阅“What Have You Tried?”了解您真正需要阅读的优秀文章。
-
您在寻找
DateTime.Date吗?更具体地说,EntityFunctions.TruncateTime与DateTime.Date有何不同? -
startDate和endDate是本地变量还是类级别变量? -
我基本上有一个 List
,每个对象都有一个 Date 属性。 startDate 和 endDate 将是我可以传入的范围。根据我目前阅读的内容,我相信它看起来像: List newList = myList.Find(IsInRange(DateTime.Now, DateTime.Now .AddDays(7)); 我尝试将其设置为谓词和 Func 。@AustinSalonen - EnitityFunctions.TruncateTime 内置于 .Net 中,允许您忽略在 lambda 表达式中使用实体框架时的 DateTime 对象。 -
@JohnSaunders - 谢谢你的链接。将来,我将尝试改进我最初的问题,并提供更多关于我尝试过的细节。