• ベストアンサー

VB or C# HashTable

C#にて勉強しております。HashTableについて勉強中です。 例えば、商品名、商品番号、単価、数量という商品データがいくつもあったとします。 そのデータを商品番号、単価ごとにまとめたいです。 【商品番号●●&単価△】 商品名A、数量10 商品名B、数量15 商品名C 数量20 とこういう具合です。商品番号ごとにまとめる!という場合はHashTabkeでキーを商品番号 にしてしまえば可能だと思います。そこに単価が加わるとなるとどのような形で実装すべきでしょうか

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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)
回答No.1

商品番号と単価をセットでキーとしたいということであれば 商品番号と単価をもつクラスをつくってGetHashCode()を実装じゃないかなぁ

関連するQ&A