私の例では、名前が提供されていない場合に提供されるプロモーションコード名のプロモーション要素を取得し、利用可能なすべてのプロモーションを取得したいと考えています。
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
....
};
条件が指定されていない場合、OR は選択に影響を与えないもの (|| true) になる SQL 手法に従うようにしました。linq ではこれは機能しませんでした。「fieldTitle」と「filterValue」が空でないにもかかわらず、常にすべてのエントリが返されます。誰かがそれを行う正しい方法を提案できますか?