文字列の整形をするときにRange構文を使ってみたらかなり体験が良かったのでまとめました。
C#8.0から配列などに対してarray[x..n]のような書き方ができるようになりました。配列のxからnの範囲を取得するような感じです。
ハイフンなしの郵便番号をアタマ3桁とおしり4桁に分解してハイフンありの郵便番号に整形してみます。
// ハイフンなし郵便番号 var postalCode = "1234567"; // 1 ~ 3番目(0 <= i < 3の範囲)の文字列を取得 var pre = postalCode[0..3]; // 4 ~ 7番目(3 <= i < 7の範囲)の文字列を取得 var post = postalCode[3..7]; // ハイフン付きに整形 var withHyphen = $"{pre}-{post}"; Console.WriteLine($"Before: {postalCode}"); Console.WriteLine($"After: {withHyphen}"); // Before: 1234567 // After: 123-4567
おまけ
Visual Studio2022のコード補完がつよいです。indexの範囲がズレてるけど次にやりたいことはだいたい補完してくれました。