您将如何根据不同的变量状态在 linq 中链接“Where”子句。 E,g;年龄范围的复选框(21-30、31-40、41-50、51-60、60 >)
我们有一个 List<People>
'People' ,我们需要根据复选框过滤它。假设列表不能只是一个 IEnumerable,因为它已被评估
除了这样做:
List<People> filteredPeople = new List<people>();
if(CB1.checked)
filteredPeople = filteredPeople.Union(People.Where(inTheirTwenties)) //assuming method inTheir20s filters correct
if(CB2.checked)
filteredPeople = filteredPeople.Union(People.Where(inTheirThirties)) ;
//...and so on
有没有更好的解决方法?
最佳答案
我会将这一切捆绑到一个 Where
语句中,并更新 inTheirTwenties
方法以像这样获取个人:
filteredPeople.Where(x => (CB1.checked && inTheirTwenties(x))
|| (CB2.checked && inTheirThirties(x)) ...);
关于c# - 链接 Linq Where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32863147/