【发布时间】:2017-05-19 21:53:35
【问题描述】:
我在编写一个在 where 子句中使用条件操作数的 LINQ 语句时遇到问题,我在该站点中查看了类似的问题,但没有任何运气。我确信有更好的方法来表达这个查询。中的值XXX是确定对象中哪个字段用于比较的结果,下面解释。
以下是我想要完成的:
var paymentReceivedAmt = (from registerEntry in RegisterEntries
where registerEntry.TransactionType != null
&& registerEntry.TransactionType.Id.SubsystemCode == "A"
&& registerEntry.Receipt != null
&& registerEntry.PostDate != null
&& XXX >= lastInvoicedDate
select registerEntry.TransactionAmount.GetValueOrDefault(0)).Sum();
值 XXX =
if registerEntry.AddedDate = registerEntry.PostDate
registerEntry.AddedDate
else
registerEntry.PostDate
registerEntry.AddedDate 和 registerEntry.PostDate 的值是 DateTime 类型,但是在比较时我只需要比较日期而不是时间
有人知道怎么做吗?
【问题讨论】:
-
msdn 有很多很好的示例:code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b
-
您的意思是使用赋值而不是相等吗?
if registerEntry.AddedDate = registerEntry.PostDate与if registerEntry.AddedDate == registerEntry.PostDate不同(注意双等号)
标签: c# linq comparison-operators operands