ひでぼ~blog

C#ときどきゲーム

C#8.0のRange構文を試す

文字列の整形をするときに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の範囲がズレてるけど次にやりたいことはだいたい補完してくれました。 f:id:hideb3:20210731204641p:plain

参考

docs.microsoft.com

ufcpp.net