目的 §
LINQに対する.NET FW 4.7.1と.NET Core 2.0の拡張を調査する。
より厳密には、.NET FT 4.7のSystem.Linq.Enumerableクラスに属するメソッドと、.NET FW 4.7.1と.NET Core 2.0の同クラスに属するメソッドを比較する。
.NET FW 4.7.1と.NET Core 2.0は、それぞれ調査時点での最新版を使用する。
方法 §
特定クラスのメソッドをリストアップする簡易コードを作成して、結果ファイルをfcコマンドで比較した。
結論・.NET FW 4.7.1で拡張されているメソッド §
結論・.NET Core 2.0で拡張されているメソッド §
- Append
- Prepend
- SkipLast
- TakeLast
- ToHashSet (2 methods)
補足 §
MoreLINQというライブラリに同名メソッドがあり、名前が衝突してしまうらしい。
感想 §
「AppendやTakeLastはあると便利だと思っていた。書くと回りくどくなると思っていた。追加されるのはある意味で必然だろう」
「歓迎の方向?」
「しかし、.NET Core 2.0でしか使えないとしたらどうだろう。結局使えないかも」
「あらら」
「しかし、.NET FWの方が機能が多かったはずが、そうとも言いきれない状況になってきた」
「先行して.NET Coreで実装される機能があるわけだね」
「しかし、名前の衝突はいかんな。あれは上手くない。既存ライブラリとは当たらないように作った方が良かったと思う」
「今のMSは、互換性の維持についてはあまり熱心とは言えないわけだね」
「非互換変更は昔からあったけどな。最近は頻度が多い。周知徹底の意欲も低い」