查询有关2个列表的linq分组依据

时间:2018-06-24 22:24:12

标签: c# linq

我在linq中有以下查询,该查询以2个列表作为数据源。第一个包含ProductID及其说明的列表

   public class Venta
{
    public string ProductoId { get; set; }
    public string clienteRut { get; set; }
}

public class Ventas
{
    public List<Venta> lstVentas { get; set; }
}

另一个列表中有出售的产品

public class Productos
{
    public List<Producto> lstProductos { get; set; }
}
public class Producto
{
    public string id { get; set; }
    public string name { get; set; }
}

我需要咨询5种最畅销的产品,按数量从最大到最小的顺序订购。

到目前为止,我有以下linq查询,但是我不知道该怎么做,因此我会得到前5个列表,并根据数量(续)从高到低排序

        Venta vta1 = new Venta();
        vta1.ProductoId = "1";
        vta1.clienteRut = "121370654";

        Venta vta2 = new Venta();
        vta2.ProductoId = "2";
        vta2.clienteRut = "121370654";

        Venta vta3 = new Venta();
        vta3.ProductoId = "3";
        vta3.clienteRut = "121370654";


        List<Venta> lstVentasDia = new List<Venta>();
        lstVentasDia.Add(vta1);
        lstVentasDia.Add(vta2);
        lstVentasDia.Add(vta3);

        VentasDia vtas = new VentasDia();
        vtas.date = "2018-05-01";
        vtas.lstVentas = lstVentasDia;


        var Lista5Top = from vendidos in vtas.lstVentas
                        orderby vendidos.ProductoId
                        group vendidos by vendidos.ProductoId into Grupo
                        select new { key = Grupo.Key, cont = Grupo.Count() };

除了该组结果外,我还需要添加“产品”列表中产品的名称,然后按售出数量从大到小的前5个顺序进行订购

先谢谢了 格洛里亚

1 个答案:

答案 0 :(得分:0)

尝试以下操作:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
        <NewCustAddDC>
     .....the xml from above goes here......
        </NewCustAddDC>
  </soap:Body>
</soap:Envelope>