根据条件动态拼接LinQ的where条件字串

时间:2021-11-10 16:30:32
var items1 = from c in customer
where c.Id != null && ( == ? c.FirstName == "AAA" : true) && ( == ? c.LastName == "BBB" : true)
select c; List<Customer> qwe11 = items1.ToList();

如果条件不多,可以直接这样写。

也可以用Lambda:

var items = customer.Where(m => m.Id != null);

if ( == )
items = customer.Where(m => m.FirstName == "Johnny"); if ( == )
items = customer.Where(m => m.LastName == "Doe");
List<Customer> qwe = items.ToList();

注意,这里只会查询一次,不会造成性能浪费。