linq 多条件动态拼接查询
时间: 2023-09-11 09:09:28 浏览: 151
Linq 动态查询参考
4星 · 用户满意度95%
在 C# 中,可以使用动态拼接的方式进行多条件查询。可以使用 `PredicateBuilder` 库来拼接多个查询条件:
```csharp
using System.Linq.Expressions;
using LinqKit;
var predicate = PredicateBuilder.True<Item>(); // True表示一个空的Predicate
if (condition1 != null)
{
predicate = predicate.And(item => item.Condition1 == condition1);
}
if (condition2 != null)
{
predicate = predicate.And(item => item.Condition2 == condition2);
}
if (condition3 != null)
{
predicate = predicate.And(item => item.Condition3 == condition3);
}
var result = itemList.AsQueryable().Where(predicate);
```
在上面的例子中,首先创建了一个空的 `Predicate` 对象,然后根据条件逐个调用 `And` 方法拼接多个查询条件,最后使用 `Where` 方法将条件应用到集合中。其中,`condition1`, `condition2` 和 `condition3` 是需要进行查询的条件,`itemList` 是需要查询的集合。这种方式可以根据实际情况动态地拼接查询条件,使代码更加灵活。
阅读全文