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