[英]IF ELSE Statement under LINQ's WHERE clause
where task.RevisionDateTime > startDateTime_
&& task.RevisionDateTime <= endDateTime_
&& task.AutoAuditNotes.ToLower() != auditString.ToLower()
&& (if(isStaging_) condition1 else condition2)
select task).ToList();
在where子句下,我有此IF ELSE語句&& (if(isStaging_) condition1 else condition2)
。 如何在WHERE子句下添加條件以保護isStaging_
變量的值?
謝謝。
您可以執行以下操作:
where task.RevisionDateTime > startDateTime_
&& task.RevisionDateTime <= endDateTime_
&& task.AutoAuditNotes.ToLower() != auditString.ToLower()
&& ((isStaging_ && condition1) || condition2)
select task).ToList();
這不是直接答案-我贊成KiNeTiC的答案。 但是,此注釋需要一些無法注釋的代碼格式。
如果將條件分解為單獨的函數,這將變得更具可讀性。 例如,無論是什么:
&& ((isStaging_ && condition1) || condition2)
將其放在自己的函數中,並帶有描述其檢查內容的名稱。 分支將使某人(即使是一周后寫它的人)也難以閱讀和關注。 但是,如果這是一個函數調用,則該函數的名稱將用作注釋。
長的LINQ查詢寫起來令人滿足,但是其他人很難理解他們在做什么。
你試試
if(isStaging_)
{
//condition1
where task.RevisionDateTime > startDateTime_
&& task.RevisionDateTime <= endDateTime_
&& task.AutoAuditNotes.ToLower() != auditString.ToLower()
select task).ToList();
}
else
{
//condition2
where task.RevisionDateTime > startDateTime_
&& task.RevisionDateTime <= endDateTime_
&& task.AutoAuditNotes.ToLower() != auditString.ToLower()
select task).ToList();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.