LINQ查询选择对象和计数

时间:2012-07-05 19:05:09

标签: c# linq fluent-nhibernate

我正在尝试进行查询以生成装箱单,并且需要一般订单信息,以及订单包含的商品数量。

这是我的基本查询:

var orders = (from cert in _orderRepository.GetAll()
                           where !cert.PrintedPackSlip
                           orderby cert.CardNumber
                           //group cert by cert.CardNumber
                           //into certGrp
                           select cert);

我需要做的是按CardNumber分组并计算有多少订单有该卡号。

如果可能的话,我会理想地它像字典一样出现

2 个答案:

答案 0 :(得分:1)

可能是这样的:

var orders = from cert in _orderRepository.GetAll()
                       where !cert.PrintedPackSlip
                       orderby cert.CardNumber
                       group cert by cert.CardNumber into certGrp
                       select new {CardNumber = certGrp.Key, Count = certGrp.Count());

foreach(var item in orders)
    Console.WriteLine("item.CardNumber: " + item.CardNumber + " item.Count: " + item.Count.ToString());

答案 1 :(得分:1)

如果我已经正确理解,对于每个订单,您要列出该卡号的订单总数,在这种情况下,以下情况应该有效:

        var orders = (from cert in _orderRepository.GetAll()
                      join cert2 in _orderRepository.GetAll()
                      on cert.CardNumber equals cert2.CardNumber
                      where !cert.PrintedPackSlip 
                      where !cert2.PrintedPackSlip
                      group cert by cert
                      into certGrp
                      select certGrp).ToDictionary(o => o.Key,o => o.Count())