2009年10月18日

LINQのToLookupメソッド

   このエントリーをはてなブックマークに追加 Clip to Evernote

LINQの拡張メソッドに、Enumerable.ToLookupメソッドがあります。
このToLookUpメソッドは、Lookup 型を返すメソッドです。
Lookup型は、Dictionary に似ていますが、Dictionaryがキーを単一の値に割り当てるのに対して、Lookup はキーに対応する値がコレクションに割り当てられます。

以下のコードを見てください。

このコードは、ToLookUpメソッドで、ProductをCategoryIDごとにグルーピングしています。
foreachで取り出せるのは、IGrouping インターフェースのオブジェクトであり、 TKeyに対し、TElementのコレクションを保持しています。
この例では、[CategoryID, 該当する複数のProduct]を要素として持つコレクションとなります。
要素を取得するのに、2つのforeachを使い、CategoryIDに該当するProductName(複数)を表示しています。

図示できれば、もっと理解しやすいのだと思いますが、図を描くのは面倒なのでパスします。

この例では、あえて、型を明示したコードにしましたが、実際には、 varを使い、


と書いても良いと思います。


 

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/gushwell/51911158