在 linq 中应用多个表达式 [英] Apply multiple expression in linq
本文介绍了在 linq 中应用多个表达式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在不同情况下使用不同类型的滤波器.如何在LinQ中应用多个过滤器.
Having different kind of filter following used in different situation. How to apply more than 1 filter in a LinQ.
Expression<Func<data, bool>> filter =
bt => bt.condition1 == condition1;
Expression<Func<data, bool>> filter2 =
bt => bt.condition2 == condition2;
Expression<Func<data, bool>> filter3 =
bt => bt.condition3 == condition3;
var result = dataList.Where(filter1);
var result2 = dataList.Where(filter2, filter3); //Syntax error
var result3 = dataList.Where(filter2).Where(filter3); //Is this proper?
var result4 = dataList.Where(filter2 || filter3); //Syntax error
推荐答案
您只需为要应用的每个过滤器调用 .Where(filter)
.
You can simply call .Where(filter)
for every filter that you want to apply.
您可以过滤 IEnumerable< T>
.Where()再次返回,过滤出所需的所有元素.
You can filter the IEnumerable<T>
that .Where()
returns again, filtering out all elements that you want.
用法:
IEnumerable<someType> result = dataList.Where(filter1).Where(filter2).Where(filter3);
您还可以做的是将所有过滤条件都放在一个表达式中,而不是多个.
What you could do aswell is have all the filtering conditions in a single expression, instead of multiple ones.
这篇关于在 linq 中应用多个表达式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文