我有几个变量需要在 for 循环中分配。显然,当循环退出时,C# 会忽略其中发生的任何事情,并且变量会返回到它们的原始状态。具体来说,我需要它们成为列表的最后一个和倒数第二个元素。这是代码:
int temp1, temp2;
for (int i = 0; i < toReturn.Count; i++) {
if (i == toReturn.Count - 2) { // Next-to-last element
temp1 = toReturn[i];
} else if (i == toReturn.Count - 1) { // Last element
temp2 = toReturn[i];
}
}
// At this point, temp1 and temp2 are treated as uninitialized
注意:不要介意不好的变量名,它们实际上是临时变量。任何更复杂的事情都会使事情变得混乱。
现在,有两种方法(我知道)可以解决这个问题:一种是弄清楚如何在循环退出后使变量生效,另一种是在 Python 中执行类似的操作,您可以在其中temp = my_list[-1]
获取最后一个元素的一个列表。这些在 C# 中是否可行?
编辑:当我尝试编译时,出现“使用未分配的局部变量 'temp1'”错误。这段代码甚至没有运行,它只是坐在一个永远不会被调用的方法中。如果这有帮助,我正在尝试在另一个循环中使用变量。