C# - 带有 OR 子句的 LINQ 语句

标签 c# linq

我正在尝试使用 LINQ 返回处于三种状态之一的任务列表。这些状态是:

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

状态可通过名为“TaskStateID”的属性获得。我可以在 LINQ 中仅使用一种状态来执行此操作,如下所示:

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 OR p.TaskStateID == 11 OR p.TaskStateID == 12?

谢谢

最佳答案

使用 OR (||) 运算符:

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

关于C# - 带有 OR 子句的 LINQ 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2439142/

相关文章:

c# - 在 EF Core 数据库上使用复合主键拆分表

c# - ReadOnlySequence<byte> 解析

c# - 在数组上使用 System.Linq 中的 .Any 查找字符串

linq - Nhibernate 3 和 LINQ

c# - Entity Framework 中 Include() 方法的作用是什么

c# - 如何计算特定 block 的 AES GCM IV

c# - 如果发生更改,资源文件就会损坏

c# - 如何格式化 stringbuilder 以在表格中发送我的电子邮件而不是纯文本

c# - PLinq 本质上比 System.Threading.Tasks.Parallel.ForEach 快吗

c# - ViewModel 在 asp.net mvc 5 中回发一个空集合