c# - 链接 Linq Where 子句

标签 c# linq linq-to-objects

您将如何根据不同的变量状态在 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/

相关文章:

c# - C# 示例中的异步和等待

c# - DataType(DataType.*) 的用途是什么?

c# - LINQ:分页技术,使用 take 和 skip 但还需要总记录 - 如何实现?

c# - 如何在 linq DataSource 中插入空记录?

c# - C# 中 'fake' linq 理解语法关键字的可用选项?

C#对象排序,多条件

c# - 我的程序停留在 Process.WaitForExit();

c# - 当前上下文中不存在名称 'trace'

c# - LINQ 是否有任何简单/优雅的方法来获取第一个元素并将其放在最后?

c# - 连接的 Lambda 表达式