类中的方法接受要从列表中移除的用户的整数代码有效。我的问题是我不明白它为什么会起作用;事实上,据我所知,它不应该起作用。
public void Remove(int ValueToRemove)
{
bool isFound = false;
for (int count = 0; count < CurrentIndex; count++)
{
if (list[count] == ValueToRemove && !isFound)
{
isFound = true;
CurrentIndex = CurrentIndex -1;
}
if (isFound && ((count + 1) < list.Length))
{
list[count] = list[count + 1];
}
}
}
是不是该声明…
if(list[count] == ValueToRemove && !isFound)
…始终计算为false,因此跳过在大括号内运行代码不是!被发现相当于
if(list[count] == ValueToRemove && isFound == true)
在密码里…
if (list[count] == ValueToRemove && !isFound)
{
isFound = true;
CurrentIndex = CurrentIndex -1;
}
…如果currentIndex=currentIndex-1,使currentIndex小于它所做的值,那么前一个索引会发生什么情况?
最后。。。
if (isFound && ((count + 1) < list.Length))
{
list[count] = list[count + 1];
}
…列表[count]的值是否等于下一个索引的值(例如,索引5等于索引6中的任何值),或者该索引中包含的值是否等于更高的值(例如,如果索引5包含值10,则索引5现在将等于11)
最佳答案
由于isFound
为false,!isFound
计算结果为true,并输入if语句。
这意味着!isFound
与所说的相同:
isFound == false
…如果currentIndex=currentIndex-1,使currentIndex小于它所做的值,那么前一个索引会发生什么情况?
前一个索引没有发生任何变化,而是在列表中的当前项上重复循环。
…列表[count]的值是否等于下一个索引的值(例如,索引5等于索引6中的任何值),或者该索引中包含的值是否等于更高的值(例如,如果索引5包含值10,则索引5现在将等于11)
它接受列表中下一项的值并将其分配给
list[count]
。您可以通过设置断点和调试代码、查看正在发生的情况并在运行时检查值来自己回答许多此类问题。
关于c# - 我不明白为什么此代码有效?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32698815/