类中的方法接受要从列表中移除的用户的整数代码有效。我的问题是我不明白它为什么会起作用;事实上,据我所知,它不应该起作用。

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/

10-10 00:52