var filteredItemNumber = 0;
if (!string.IsNullOrEmpty(searchTerm))
{
filteredItemNumber =
this._objectsRep.Find(
r =>
r.ObjectTitle.StartsWith(searchTerm) && r.CreatedDate >= timePeriod.Start
&& r.CreatedDate <= timePeriod.End).Count();
}
else
{
filteredItemNumber =
this._objectsRep.Find(t => t.CreatedDate >= timePeriod.Start && t.CreatedDate <= timePeriod.End)
.Count();
}
我確定必須有一個簡短的方法來擺脫if語句,但我不知道如何。當我使用下面的代碼時,過濾返回的結果與我期望的不同。也許括號不正確?有沒有更好的縮短這個LINQ語句的方法?
this._objectsRep.Find(r =>
searchTerm == null || r.ObjectTitle.StartsWith(searchTerm) && r.CreatedDate >= timePeriod.Start
&& r.CreatedDate <= timePeriod.End).Count()
我想實現的是,如果serchTerm爲空或null就忽略這個過濾器,但只能使用的時間範圍。
感謝
'List.Find'不是LINQ。 –