- ベストアンサー
VB or C# HashTable
C#にて勉強しております。HashTableについて勉強中です。 例えば、商品名、商品番号、単価、数量という商品データがいくつもあったとします。 そのデータを商品番号、単価ごとにまとめたいです。 【商品番号●●&単価△】 商品名A、数量10 商品名B、数量15 商品名C 数量20 とこういう具合です。商品番号ごとにまとめる!という場合はHashTabkeでキーを商品番号 にしてしまえば可能だと思います。そこに単価が加わるとなるとどのような形で実装すべきでしょうか
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
単純に考えれば, Dictionary<int, Dictionary<int, Item[]>> とするのでしょうか。 # Itemは商品データ。 GroupByしてToDictionaryすればよいのだから,IEnumerable<Item> itemsに対して, items .GroupBy(i => i.Code) .ToDictionary( g => g.Key, g => g.GroupBy(i => i.Price) .ToDictionary(g2 => g2.Key, g2 => g2.ToArray())) でできるかと。 ちなみに, System.Collections.Hashtable のようなSystem.Collections直下のコレクションクラスはジェネリックの存在しなかった.NET 1.x時代のものです。 互換性等,重大な理由がない限りSystem.COllections.Generic以下のコレクションクラスを使うべきです。
その他の回答 (1)
- wormhole
- ベストアンサー率28% (1626/5665)
商品番号と単価をセットでキーとしたいということであれば 商品番号と単価をもつクラスをつくってGetHashCode()を実装じゃないかなぁ