LINQ その2

 自分のコレクションをLINQ可能にしたければIEnumerableつまりGetEnumeratorとGetEnumeratorを実装すればいいのだけど、IEnumerableだけだとCountすら全部列挙しないと分からない。

 多分Countの内部ではそのインスタンスがICollectionを実装してないか調べて、実装してたらICollectionのCountを呼び出すようにしてると思う。たぶん。

 だからICollectionぐらいまでは実装してあげるべきだと思う。しかしそうするとIDictionaryとうまく整合性が取れない。

 そこでHashSetを使うのだと思うのだけど、HashSetの使い方がもう全然分からない。どうやって値を取り出すんだ。