我有一个结果视图的多个结果,现在我正在尝试定义一个linq语句,其中包含多个未知值'或'操作
我就是这样做的
for (int b = 0; b < result3.Count(); b++)
{
int value = result3[b].category_id;
query4 = query4.Where(p => p.category_id == value ).OrderBy(p => p.sort_order);
tempData.Add(value);
}
然而,结果是什么,这是&#39;和&#39;条款,我想创建一个&#39;或&#39;运营商,有可能吗?
答案 0 :(得分:3)
此处无需显式循环
var ids = result3.Where(x => x.category_id);
query4 = query4.Where(x => ids.Contains(x.category_id))
tempData = query4.Select(z => z.category_id)
.OrderBy(c => c.sort_order);
这可能会给你循环中预期的“OR”输出。但是, tempData 变量包含与 var ids 中提取的完全相同的值,但只是已排序,因此,如果 result3 和 query4 是相同类型T的可枚举,然后您可以在 query4 之前设置 tempData 并使用它来过滤query4。
var tempData = result3.Where(x => x.category_id)
.OrderBy(c => c.sort_order)
.Select(p => p.category_id);
query4 = query4.Where(x => tempData.Contains(x.category_id))