C# - 使用LINQ陈述或条款 [英] C# - LINQ Statements with OR clauses

查看:79
本文介绍了C# - 使用LINQ陈述或条款的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图使用LINQ返回有三种状态之一的任务列表。这些状态是:

I am trying to use LINQ to return a list of tasks that are in one of three states. These states are:

10 - 完成
11 - 不完全
12 - 跳过

10 - Completed 11 - Incomplete 12 - Skipped

国家通过一个名为TaskStateID属性可用。我可以在LINQ中只有一个国家做到这一点,如下所示:

The state is available through a property called "TaskStateID". I can do this in LINQ with just one state as shown here:

var filteredTasks = from task in tasks
                    select task;

// Do stuff with filtered tasks

string selectedComboBoxValue = GetFilterComboBoxValue();
if (selected ComboBoxValue == 3)
{
  filteredTasks = filteredTasks.Where(p => p.TaskStateID == 10); // How do I use an 'OR' here to say p.TaskStateID == 10 OR p.TaskStateID == 11 OR p.TaskStateID == 12
}

由于在注释上面显示,我怎么使用'或'一中的LINQ声明称p.TaskStateID == 10或p.TaskStateID == 11或p.TaskStateID == 12?

As shown in the comment above, how do I use an 'OR' in a LINQ statement to say p.TaskStateID == 10 OR p.TaskStateID == 11 OR p.TaskStateID == 12?

感谢您

推荐答案

使用 (||)运算符:

Use the OR (||) operator:

filteredTasks = filteredTasks.Where(p => p.TaskStateID == 10 || 
                                         p.TaskStateID == 11 || 
                                         p.TaskStateID == 12);

这篇关于C# - 使用LINQ陈述或条款的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆