10

次のようなリストがあります。

var products = new List<Product>
{
    new Product { Id = 1, Category = "Electronics", Value = 15.0 },
    new Product { Id = 2, Category = "Groceries", Value = 40.0 },
    new Product { Id = 3, Category = "Garden", Value = 210.3 },
    new Product { Id = 4, Category = "Pets", Value = 2.1 },
    new Product { Id = 5, Category = "Electronics", Value = 19.95 },
    new Product { Id = 6, Category = "Pets", Value = 5.50 },
    new Product { Id = 7, Category = "Electronics", Value = 250.0 },
};

カテゴリ別にグループ化し、そのカテゴリに属する​​「値」の合計を取得したい..例: 電子機器: 284.95

他の方法でこれを行うこともできますが、Look-Up の使用法を学びたいと考えています。

ルックアップでこれら 2 つの値 (カテゴリと値) を取得することは可能ですか? はいの場合、どうすればそれを行うことができますか?

4

4 に答える 4

8

ToDictionary()おそらく代わりに使用したいでしょうToLookup

var dict = products
    .GroupBy(p => p.Category)
    .ToDictionary(grp => grp.Key, grp => grp.Sum(p => p.Value));

foreach(var item in dict)
{
    Console.WriteLine("{0} = {1}", item.Key, item.Value);
}
于 2013-04-18T05:34:48.113 に答える