コードインスペクション:末尾からのインデックスはゼロより大きくする必要があります。最後の要素を参照するには '^1' を使用してください。
C# 8.0 で導入された逆インデックス演算子 ^ は、最初の要素 0 を参照する場合と同じように、最後の要素を ^0 で参照するという間違いを引き起こす可能性があります。 ただし、末尾からのインデックスは 1 で始まるように設計されているため、インデックスとして ^0 を使用すると、実行時に IndexOutOfRangeException が発生します。
この StackOverflow の回答(英語)は、エンドスターからのインデックスが 0 ではなく 1 である理由の良い説明を提供します。
この問題を修正するには、インデックス内の ^0 を ^1 に置き換えます。
void Sample()
{
var numbers = new[] { "one", "two", "three" };
var three = numbers[^0];
Console.WriteLine(three);
}
void Sample()
{
var numbers = new[] { "one", "two", "three" };
var three = numbers[^1];
Console.WriteLine(three);
}
2026 年 6 月 12 日