2

注文のリストで一意のアイテムの数を取得する必要があります。

注文のリストがあり、各注文にはアイテムのリストがあります。

public class Order
{
   public int orderID;
   public List<items> itemList;
}

public class Item
{
   public int itemID;
   public int itemQuantity;
   public String itemDescription;
}

私の最終目標は、一意のアイテム (itemID または itemDescription に基づく) のリストと、一意の各アイテムの合計数です。

今のところ以下のようになっていますが、次に何をすればよいかわかりません。

var x = from order in orders
from items in order.OrderItems
group // I know I need to group them here
select new { // I have to count in here };

次のような結果が必要です。

  • ID: アイテム_01、カウント: 15
  • ID: アイテム_02、カウント: 3
  • ID: アイテム_03、カウント: 6

これに関するヘルプや指示は素晴らしいでしょう。ありがとう。

4

2 に答える 2

2

これは、ItemID 値と ItemDescription 値の両方を使用して合計されます。

var x = from order in orders
            from item in order.OrderItems
            group item by new { ItemID = item.itemID, ItemDescription = item.itemDescription } into g
            select new { ItemID = g.Key.ItemID, ItemDescription = g.Key.ItemDescription, Count = g.Sum(o => o.itemQuantity) };
于 2013-08-12T19:12:00.390 に答える
1
Orders.SelectMany(x => x.itemList)
        .GroupBy(x => x.itemID)
        .Select(x => new { itemID = x.Key, Count = x.Count() })
        .ToList()
于 2013-08-12T19:52:26.107 に答える