在条件使用多个地方的最佳方法是什么? 目前,我是这样写的。
var v = _context.table1.Where(x => x.column1>= 0 && x.column1<= 10)
.Where(x => x.column2>= 0 && x.column2<= 10)
.Where(x => x.column3>= 0 && x.column3<= 10)
.Where(x => x.column4>= 0 && x.column4<= 10)
.Where(x => x.column5>= 0 && x.column5<= 10)
.Where(x => x.column6>= 0 && x.column6<= 10);
答案 0 :(得分:0)
您可以将比较逻辑移动到对象中。
void Main()
{
var list = new List<MinifiedSiteEvent>{
new MinifiedSiteEvent{ A = 1, B = 1, C = 1, D = 1, E = 1, F = 1 },
new MinifiedSiteEvent{ A = 2, B = 2, C = 2, D = 2, E = 2, F = 2 },
new MinifiedSiteEvent{ A = 3, B = 3, C = 3, D = 3, E = 3, F = 3 },
};
var filter1 = 2;
var filter2 = 3;
var result = list.Where(x => x.IsInRange(filter1, filter2) );
}
class MinifiedSiteEvent
{
public int A { get; set; }
public int B { get; set; }
public int C { get; set; }
public int D { get; set; }
public int E { get; set; }
public int F { get; set; }
public bool IsInRange(int item1, int item2)
{
return A >= item1 && A <= item2
&& B >= item1 && B <= item2
&& C >= item1 && C <= item2
&& D >= item1 && D <= item2
&& E >= item1 && E <= item2
&& F >= item1 && F <= item2;
}
}
答案 1 :(得分:0)
如果您的关注点是多个&#39;其中&#39;,您可以加入所有&#39;其中&#39;在一个地方&#39;语句:
var v = _context.table1.Where(x => x.column1>= 0 && x.column1<= 10
&& x.column2>= 0 && x.column2<= 10
&& x.column3>= 0 && x.column3<= 10
&& x.column4>= 0 && x.column4<= 10
&& x.column5>= 0 && x.column5<= 10
&& x.column6>= 0 && x.column6<= 10);