我试图使用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
}
Run Code Online (Sandbox Code Playgroud)
如上面的注释所示,如何在LINQ语句中使用"OR"来表示p.TaskStateID == 10 OR p.TaskStateID == 11 OR p.TaskStateID == 12?
谢谢
Ode*_*ded 41
使用OR(||)运算符:
filteredTasks = filteredTasks.Where(p => p.TaskStateID == 10 ||
p.TaskStateID == 11 ||
p.TaskStateID == 12);
Run Code Online (Sandbox Code Playgroud)
Ron*_*ony 18
var taskIds = new[]{10, 11, 12}
var selectedTasks = filteredTasks.Where(p => taskIds.Contains(p.TaskStateID))
Run Code Online (Sandbox Code Playgroud)
使用条件OR运算符:
filteredTasks = filteredTasks.Where(p => p.TaskStateID == 10 ||
p.TaskStateID == 11 ||
p.TaskStateID == 12);
Run Code Online (Sandbox Code Playgroud)