在我的示例中,我想獲取促銷代碼名稱的促銷元素,如果未提供名稱,則提供促銷代碼名稱,然後採取所有可用的促銷活動。執行LINQ帶或不帶where條款
var result = from row in promoCodes.AsEnumerable()
where (
!String.IsNullOrEmpty(fieldTitle) &&
!String.IsNullOrEmpty(filterValue) &&
row[fieldTitle].Equals(filterValue)
) || true
select new PromoCodeInfoContainer
{
BannerLink = row["BannerLink"] as string
....
};
我試圖遵循SQL技術,如果沒有提供條件,那麼OR將是任何不會影響選擇(|| true)的東西。在linq中,這不起作用,它總是返回所有條目,而不管「fieldTitle」和「filterValue」是否爲空。任何人都可以提出一個正確的方法來做到這一點?
好,'||真正'看起來是一個很好的理由,以返回每一行... –
是@MarcGravell這就是問題 –
我會說兩個語句,一個檢查促銷元素,然後第二個如果沒有找到。它會更容易閱讀和簡單。 –