7
什麼是最好的方式做一個條件查詢使用LINQ到對象(不是LINQ到SQL)。Linq to objects謂詞生成器
目前我正在使用此處發現的謂詞構建器http://www.albahari.com/nutshell/predicatebuilder.aspx 並將編譯的謂詞傳遞給IEnumerable.Where,它似乎很好地工作。什麼,我想解決
示例代碼:
例如,我有這個
string keyword1 = "Test1";
string keyword2 = "Test3";
IEnumerable<TestObject> tests = new List<TestObject>()
{
new TestObject() {Name1 = "Test1", Name2 = "Test1"},
new TestObject() {Name1 = "Test2", Name2 = "Test2"},
new TestObject() {Name1 = "Test3", Name2 = "Test3"},
};
if (!String.IsNullOrEmpty(keyword1) && String.IsNullOrEmpty(keyword2))
tests = tests.Where(e => e.Name1.Contains(keyword1));
else if (!String.IsNullOrEmpty(keyword2) && !String.IsNullOrEmpty(keyword1))
tests = tests.Where(e => e.Name2.Contains(keyword2) || e.Name1.Contains(keyword1));
return tests.ToList();
工作原理感謝喬恩,是否有任何性能問題,可以通過構建像這樣的查詢造成的,而對於long if – kwiri