for ループ内で割り当てる必要がある変数がいくつかあります。どうやら、ループが終了すると、C# はそこで起こったことを無視し、変数は元の状態に戻されます。具体的には、List の最後と最後から 2 番目の要素にする必要があります。コードは次のとおりです。
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
注: 不適切な変数名は気にしないでください。これらは実際には一時的な変数です。より複雑なものは、物事を混乱させるでしょう。
さて、これを解決するには(私が知っている)2つの方法があります.1つはループ終了後に変数を有効にする方法を考え出すこと、もう1つはtemp = my_list[-1]
最後の要素を取得するためにできるPythonのようなことをすることです.リストの。これらのいずれかが C# で可能ですか?
編集:コンパイルしようとすると、「割り当てられていないローカル変数 'temp1' の使用」エラーが発生します。このコードは実行されることさえありません。呼び出されることのないメソッドの中にあるだけです。これが役立つ場合は、別のループ内で変数を使用しようとしています。