.NETラボ 2021年11月登壇振り返り
.NET ラボ2021年11月に「.NET 6の期待の新機能とアップデート」というタイトルで登壇してきました。
Linqのメソッド追加
これまで数々のセッションで.NET6についての紹介があったかと思いますが、他であまり触れられて来なかったアップデートとしてはLinqのメソッド追加です。
- DistinctBy
- UnionBy
- IntersectBy
- ExceptBy
- MaxBy
- MinBy
といったメソッドが追加になっています。
特に、MaxBy、MinByといったあたりは使用するケースが多くこれまでソートして先頭の要素を取り出していたのですが.NET6からは1発でできるようになり非常に便利になりました。
var people = new (string Name, int Age)[] { ("Francis", 20), ("Lindsey", 30), ("Ashley", 40) }; people.MaxBy(person => person.Age); // ("Ashley", 40)
文字列補完の高速化
文字列補完は特にログ出力などに多く使われているかと思いますが、String.Format()と比べ表記が見やすく可読性に優れているといえます。
従来の実装ですと、文字列補完はString.Formatと同等処理となります。今回、.NET6では新たにDefaultInterplatedStringHandler構造体を実装しコンパイラがこれに当てはまると判断したものについてはこの構造体で展開されていくこととなります。
これにより高速化が実現されています。
手元の実計測によりますと、ほぼStringBuilderと同等レベルの速度が出ています。
このことから、より積極的に文字列補完を使用していくべきと考えられます。