滅入るんるん

何か書きます

【C#】配列はIListを実装していた

小ネタ

はい、久しぶりのC#記事です。1カ月ぶりかな?その間にいろいろとネタは集めたのでちょっとずつ書き出していきます。

まずは、上の画像を見てください。

パターンマッチングでIList<string>してからstring[]が重複ケースで失敗しています。
これを逆にすると問題ないので、なんでだろうとcsharplangやRoslynのIssue眺めたりしてましたが、原因は結構単純でした。

https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/arrays/ から抜粋した画像です。
配列がIEnumerableとIEnumerable<T>を実装しているのはC#erとしてはかなり一般的なことかと思います。
自分もひょっとしたら配列のIEnumerableとIListのIEnumerableが衝突してるのかな~と考えてたりしましたが、なんと配列のIEnumerableの実装の仕方がアレでした。

https://docs.microsoft.com/ja-jp/dotnet/api/system.array?view=netframework-4.7.2

………

おいおいおいおい、IList経由で実装してたのかーーーい

そりゃパターンマッチングで重複ケースになるわけですよね。
また一つ勉強になりましたm(__)m