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;