缩短if语句的一种方法
本文关键字:一种 方法 if 语句 缩短 | 更新日期: 2023-09-27 18:20:02
我有一个由四个数字组成的数组,需要将其与另一个数字数组进行比较。我应该告诉你这些数字中有多少是正确的,还有多少是正确但不正确的数字。
F.eks:
Code: 1501
Guess: 1305
Right numbers: 3
Right placement: 2
正确的位置很容易。但是"正确的数字"部分有点棘手。我就是这样解决的:
//Check if number exist in context
Rn = 0;
for (int g = 0; g < 4; g++)
{
resent[g] = 6;
}
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
if
(
guess[i] == Numbers[j]
&& guess[i] != resent[0]
&& guess[i] != resent[1]
&& guess[i] != resent[2]
&& guess[i] != resent[3]
)
{
Rn++;
resent[i] = guess[i];
}
}
}
ConsolePost("Right Numbers: " + Rn);
有更好的方法吗。或者可以缩短这个时间吗?
类似:
if(guess[i] == Numbers[j] && != resent[0-3])
{
Something;
}
您可以使用Any()检查是否决定更改数组的大小:
!resent.Any(c=>c==guess[i])
您可以在resent
上使用Enumerable.Take(4)
和Contains,如:
!resent.Take(4).Contains(guess[i])
所以你的支票可能是:
if(guess[i] == Numbers[j] && !resent.Take(4).Contains(guess[i]))
参见:Enumerable.Take<TSource> Method
从序列
如果resent
大小总是4,那么您可以跳过Take(4)
,而只使用Contains
,如:
if(guess[i] == Numbers[j] && !resent.Contains(guess[i]))