C# – コレクションのスライス表記

古い話になるけれど、C#8.0から、配列や数値インデックスを持つコレクションのスライス表記ができるようになった。
この表記ちょっと分かりづらかったので、簡単にまとめてみた。

ここでは、文字列を例に挙げる。
以下のような、文字列があった場合。

string s = "0123456789";
// ^n - 最後からn番目を表す
> s[^1]  
'9'

// ..表記で範囲指定(スライス)
// [s..e]表記で、sはスタートインデックス,eはエンドインデックス+1

> s[..^1]	// 0~最後から2番目
"012345678"

> s[1..4]	// index 1~3
"123"

> s[3..]	// index 3以降
"3456789"

> s[^3..]	// 最後から3番目以降
"789"

> s[^5..^2]	// 最後から5番目から最後から3番目
"567"

という感じ。

スライスの場合、[s..e]の表記で、sは含む,eは含まないという点に注意。

takezou について

ソフトウェア開発会社(ITと言う言葉は大嫌い)で働く、元技術者。 未だに、社内システム位は作ってますが・・・ プログラミング言語はC#が好き。 好きなことだけ拾って投稿しているので、内容にはあまり期待しないでねw
カテゴリー: .NET, C#, 技術系 パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください