VSCodeでC#のコードを書いていて、配列の最後の要素を取得したところ「Use index operator」というサジェストが出てきた:
var array = new int[] {1, 2, 3, 4, 5}; |
などと書いたらサジェストされて、選ぶとコードが変換される:
var last = array[^1]; |
^n
は System.Index
のシンタックスシュガーで、 []
に渡すと後ろからの参照 [array.Length - n]
という意味になるらしい。
配列に限らず、 List
でも使える。
全然C#の新しい言語仕様を追いかけてなくてエディタに指摘される日々、
Linqの .Last()
を使うので精一杯だったんじゃが…。
コンパイラが適切に処理してくれるようなので、「 Index
の一次オブジェクトが〜」とか細かいことは考えなくていいらしい。
(Sharplabで確認)
タイプ量は少なくすむが、わかりやすいか・便利かどうかは…うーん微妙。
RubyやPythonの [-1]
よりはコンサバでよいとは思うが。