新しもの好きプログラマの耳より情報ブログ

仕事でもあるプログラミングについて役に立ちそうな情報を発信していこうというブログです。役に立たなそうな情報はfacebookで。

C# 12のCollection Expressionsでbyte[]の初期化がちょっと楽になった

C# 12 から導入されたCollection Expressionsは左辺の変数の型を考慮してくれるようなので、byteを宣言・初期化する時にとても便利だという話です。

次のような書き方はコンパイルエラーになります。これは、右辺の型がintと仮定されて、それをbyte[]へ代入しようとするためです。

byte[] arr = new [] { 1, 2, 3 };

次のようにする必要があるため、あんまり記載量が減っていなくて少し面倒でした。

byte[] arr = new byte[] { 1, 2, 3 };

Collection Expressionsを使うと、次の書き方ができます。

byte[] arr = [ 1, 2, 3 ];

だいぶすっきりした感じがします!この書き方の場合、左辺の型の初期化という扱いになるため、右辺に型を指定する必要がないのだと思います。

C#の文法であり .NETの実行バージョンに依存しないようなので、C# 12がデフォルトとなっている .NET 8はもちろん、言語バージョンを12.0以上に上げれば古い .NETでも使えるようです。

ちょっとしたことですが、とても便利だと思います。使っていきましょう!

便利だと思った側面だけを紹介しましたが、詳しく知りたい人はMSオフィシャルのドキュメントをどうぞ。コレクション式 (コレクション リテラル) - C# reference | Microsoft Learn