配列の要素を指定する方法、後ろから何番目と指定するときに使用するのIndex演算子
一番最後の要素が1であることに注意
var data = new[] { "a", "b", "c", "d", "e" };
// a
Console.WriteLine(data[0]);
Console.WriteLine(data[^5]); // 最後から5番目の要素
// b
Console.WriteLine(data[1]);
Console.WriteLine(data[^4]); // 最後から4番目の要素
// c
Console.WriteLine(data[2]);
Console.WriteLine(data[^3]); // 最後から3番目の要素
// d
Console.WriteLine(data[3]);
Console.WriteLine(data[^2]); // 最後から2番目の要素
// e
Console.WriteLine(data[4]);
Console.WriteLine(data[^1]); // 最後の要素
.. は範囲演算子
範囲演算子の前に指定するのは含む要素
範囲演算子の後ろに指定するのは、含まない要素を指定
var data = new[] { "日", "月", "火", "水", "木", "金", "土" };
// 含む要素番号..含まない要素番号
Console.WriteLine("平日は、{0}", string.Join(",", data[1..6])); // 月,火,水,木
// 同じ結果 含む要素番号..後ろから1番目の要素の前まで取得
Console.WriteLine("平日は、{0}", string.Join(",", data[1..^1])); // 月,火,水,木
// 木,金,土を出力
Console.WriteLine(string.Join(",", data[4..]));
Console.WriteLine(string.Join(",", data[^3..])); // 範囲演算子の前は含む要素、後ろは指定した要素の一つ前まで取得
// 日,月,火を出力
Console.WriteLine(string.Join(",", data[..3]));
Console.WriteLine(string.Join(",", data[..^4])); // 範囲演算子の前は含む要素、後ろは指定した要素の一つ前まで取得