if((b[1].x+30 >= a[n].x && b[1].x <= a[n].x + 60 ) || (b[2].x + 30 >= a[n].x && b[2].x <= a[n].x + 60 )|| (b[3].x + 30 >= a[n].x && b[3].x <= a[n].x + 60 ))
|| 前后的语句(** && **)是类似的,可能需要继续增加到b[n],请问有没有大神能告诉我如何简写?
8 个解决方案
#1
我再写的清楚点:
if((b[1].x+30 >= a[n].x && b[1].x <= a[n].x + 60 )||
(b[2].x+30 >= a[n].x && b[2].x <= a[n].x + 60 )||
(b[3].x+30 >= a[n].x && b[3].x <= a[n].x + 60 )||
(b[i].x+30 >= a[n].x && b[i].x <= a[n].x + 60 ))
这个如何简写?
if((b[1].x+30 >= a[n].x && b[1].x <= a[n].x + 60 )||
(b[2].x+30 >= a[n].x && b[2].x <= a[n].x + 60 )||
(b[3].x+30 >= a[n].x && b[3].x <= a[n].x + 60 )||
(b[i].x+30 >= a[n].x && b[i].x <= a[n].x + 60 ))
这个如何简写?
#2
你要实现的算法是什么?如果只是1-n的问题可以采用for循环或foreach循环 嵌套if判断。如果全是 and链接还可以反过来判断,只要一个不满足就false
#3
if (b.Any(x => x.x + 30 >a[n].x && x.x <= a[n].x + 60))
...
...
#4
public static bool getBool(int x,int y)
{
if (x - y > -30 && x - y <= 60) return true;
else return false;
}
if(getBool(b[1].x,a[n].x)||getBool(b[2].x,a[n].x)||getBool(b[3].x,a[n].x))
#5
其实,a[n].x是共有的,你可以进一步简化getBool方法,使得只传递一个参数(b[1],b[2]……)就行了,使得写法更方便
#6
更正:if (x - y >
= -30 && x - y <= 60)
#7
if (b.Any(bi => bi.x + 30 >= a[n].x && bi.x <= a[n].x + 60 ))
{//看你n是固定值
//判断成功
}
#8
非常感谢楼上大神的回答,问题已经解决了
#1
我再写的清楚点:
if((b[1].x+30 >= a[n].x && b[1].x <= a[n].x + 60 )||
(b[2].x+30 >= a[n].x && b[2].x <= a[n].x + 60 )||
(b[3].x+30 >= a[n].x && b[3].x <= a[n].x + 60 )||
(b[i].x+30 >= a[n].x && b[i].x <= a[n].x + 60 ))
这个如何简写?
if((b[1].x+30 >= a[n].x && b[1].x <= a[n].x + 60 )||
(b[2].x+30 >= a[n].x && b[2].x <= a[n].x + 60 )||
(b[3].x+30 >= a[n].x && b[3].x <= a[n].x + 60 )||
(b[i].x+30 >= a[n].x && b[i].x <= a[n].x + 60 ))
这个如何简写?
#2
你要实现的算法是什么?如果只是1-n的问题可以采用for循环或foreach循环 嵌套if判断。如果全是 and链接还可以反过来判断,只要一个不满足就false
#3
if (b.Any(x => x.x + 30 >a[n].x && x.x <= a[n].x + 60))
...
...
#4
public static bool getBool(int x,int y)
{
if (x - y > -30 && x - y <= 60) return true;
else return false;
}
if(getBool(b[1].x,a[n].x)||getBool(b[2].x,a[n].x)||getBool(b[3].x,a[n].x))
#5
其实,a[n].x是共有的,你可以进一步简化getBool方法,使得只传递一个参数(b[1],b[2]……)就行了,使得写法更方便
#6
更正:if (x - y >
= -30 && x - y <= 60)
#7
if (b.Any(bi => bi.x + 30 >= a[n].x && bi.x <= a[n].x + 60 ))
{//看你n是固定值
//判断成功
}
#8
非常感谢楼上大神的回答,问题已经解决了