repeated remove from c# linq list ienumerable group-by

remove - Lista de C#<> Valores de GroupBy 2



remove duplicates from a list c# (4)

Estoy usando C # en Framework 3.5. Estoy buscando agrupar rápidamente una Lista genérica <> por dos propiedades. Por el bien de este ejemplo, digamos que tengo una Lista de un tipo de orden con propiedades de IdCliente, IdProducto y CoberturaProducto. ¿Cómo obtendría la suma de ProductCounts agrupados por CustomerId y ProductId utilizando una expresión lambda?


Alternativamente, si quiere obtener los ID de cada suma, puede hacer esto

var customerAndProductGroups = from order in Orders orderby order.CustomerID, order.ProductID // orderby not necessary, but neater group order by new { order.CustomerID, order.ProductID }; foreach (var customerAndProductGroup in customerAndProductGroups) { Console.WriteLine("Customer {0} has ordered product {1} for a total count of {2}", customerAndProductGroup.Key.CustomerID, customerAndProductGroup.Key.ProductID, customerAndProductGroup.Sum(item => item.ProductCount)); }


Me doy cuenta de que este hilo es muy antiguo, pero como luché por esta sintaxis, pensé en publicar mis hallazgos adicionales: puedes devolver la suma y los ID (sin foreach) en una consulta como esta:

var sums = Orders .GroupBy(x => new { x.CustomerID, x.ProductID }) .Select(group =>new {group.Key, ProductCount = group.Sum(x => x.ProductCount)});

La parte difícil para que funcione es que la suma debe ser alias, aparentemente ...


var sums = Orders.GroupBy(x => new { x.CustomerID, x.ProductID }) .Select(group => group.Sum(x => x.ProductCount));


var New1 = EmpList.GroupBy (z => z.Age) .OrderBy (Employee => Employee.Key);

dataGridView1.DataSource = New1;