LINQ:将 OrderBy 添加到查询中

本文关键字:查询 添加 OrderBy LINQ | 更新日期: 2023-09-27 18:31:22

我正处于大学项目的终点线,我有点无法完成查询。工作查询如下所示:

var Report = from query in Document.Descendants("order")
                         group query by query.Element("seller").Value
                            into qGroup
                            select new Orders
                            {
                                Seller = qGroup.Key,
                                Quantity = qGroup.Sum(p => int.Parse(p.Element("quantity").Value)).ToString()
                            };

如果您能告诉我如何按给定的"数量"降序对结果进行排序,我将不胜感激。

谢谢!

LINQ:将 OrderBy 添加到查询中

var Report = (from query in Document.Descendants("order")
              group query by query.Element("seller").Value into qGroup
              select new Orders
              {
                  Seller = qGroup.Key,
                  Quantity = qGroup.Sum(p => int.Parse(p.Element("quantity").Value)).ToString()
              })
              .OrderByDescending(order => order.Quantity);

请这样做:

var Report = (from query in Document.Descendants("order")
                            group query by query.Element("seller").Value
                            into qGroup
                            select new Orders
                            {
                                Seller = qGroup.Key,
                                Quantity = qGroup.Sum(p => int.Parse(p.Element("quantity").Value)).ToString()
                            }).OrderByDescending(x => x.Quantity);

HTH !!!

(对 LINQ 排序按降序查询表示赞赏)

斯基皮和安德烈的答案是有效的,但你也可以写成

var Report = from query in Document.Descendants("order")
             group query by query.Element("seller").Value
             into qGroup
             let qty = qGroup.Sum(p =>int.Parse(p.Element("quantity").Value)).ToString()
             orderby qty descending
             select new Orders
             {
                 Seller = qGroup.Key,
                 Quantity = qty
             };

如果您希望将其全部保留在一个语法中。