1
我不是很熟悉linq,我試圖消除在我的代碼中重複一堆linq查詢的需要。我希望如果字符串description
的值爲空或空,我可以修改此linq查詢以返回整頁結果。目前它在該場景中不返回結果。Linq查詢,返回所有記錄,如果搜索項目爲空或空
所以基本上我想這個查詢...
return _entities.Schedules.Where(s => s.Description.ToLower().Contains(description.ToLower())))
.OrderByWithDirection(x => x.Description, dir)
.Skip((pageNumber - 1) * pageSize)
.Take(pageSize)
.ToList();
...也返回結果,這個查詢將如果description
爲空。
return _entities.Schedules.OrderByWithDirection(x => x.Description, dir)
.Skip((pageNumber - 1) * pageSize)
.Take(pageSize)
.ToList();
是啊,這就是我現在做什麼,但所有不同的過濾和排序我會做的代碼將嵌套if和switch語句,我試圖儘可能避免如果可能。 – Splendor 2013-04-04 14:34:26
@Splendor:如果它最終只是代碼需要重構的混亂。例如,你可以將'if'拉出來寫入一個方法並寫出'results.FilterByDescription(description).OrderBy ...'。如果您需要*複雜的決策邏輯來滿足您的需求,我不會看到如何將所有內容填充到單個語句中,從而使代碼更易於閱讀。 – Jon 2013-04-04 14:51:04
我最初誤解了你的答案。你用這個把我的想法弄糊塗了。謝謝! – Splendor 2013-04-04 20:01:00