我如何检查,以便是否有任何元素与 foreach 会设置它而不是稍后转到其他元素
本文关键字:元素 设置 foreach 其他 检查 何检查 任何 是否 | 更新日期: 2023-09-27 18:33:34
我如何检查是否有任何元素与 foreach 是否会设置它而不是稍后转到其他元素?
for (int i = 0; i < 3; i++)
{
Grass grass = new Grass(32 + 32 * i, 32 * 12);
GrassList.Add(grass);
}
foreach (Grass grass in GrassList)
{
if (grass.Rect.X - 32 <= Rect.X && grass.Rect.X + 32 >= Rect.X && grass.Rect.Y - 65 <= Rect.Y)
{
FallSpeed = 0;
isTouchingGround = true;
}
else
{
FallSpeed = 3;
isTouchingGround = false;
}
}
您也可以将
LINQ 表达式与 if 条件一起使用来实现所需的内容
FallSpeed = 3;
isTouchingGround = false;
if(GrassList.Any(
grass => grass.Rect.X - 32 <= Rect.X &&
grass.Rect.X + 32 >= Rect.X &&
grass.Rect.Y - 65 <= Rect.Y))
{
FallSpeed = 0;
isTouchingGround = true;
}
最好的选择是缩短您的评估。一旦你知道你正在接触地面,break
出圈。您的else
分支基本上是默认情况。
FallSpeed = 3;
isTouchingGround = false;
foreach (Grass grass in GrassList)
{
if (grass.Rect.X - 32 <= Rect.X && grass.Rect.X + 32 >= Rect.X && grass.Rect.Y - 65 <= Rect.Y)
{
FallSpeed = 0;
isTouchingGround = true;
break;
}
}