Quiero lograr algo similar a this. Pero no sé de qué manera puedo usar esa solución.¿Dividir una colección en partes según la condición con LINQ?
Mi entidad tiene estas propiedades
CustomerName
Date
SortOrder
He lista entera de esta Entidad. Lo que quiero hacer es, agrupar todos esos elementos en la lista <> que tienen consecutiva SortOrder y la misma Fecha y la misma CustomerName
Ejemplo de entrada
var inv = new List<Invoice>(){
new Invoice(){ CustomerName = "Abc" ,Date = DateTime.Today, SortOrder = 0},
new Invoice(){ CustomerName = "Abc" ,Date = DateTime.Today, SortOrder = 1},
new Invoice(){ CustomerName = "Abc" ,Date = DateTime.Today, SortOrder = 2},
new Invoice(){ CustomerName = "xyz" ,Date = DateTime.Today.Subtract(TimeSpan.FromDays(1)), SortOrder = 3},
new Invoice(){ CustomerName = "xyz" ,Date = DateTime.Today.Subtract(TimeSpan.FromDays(1)), SortOrder = 4},
new Invoice(){ CustomerName = "Abc" ,Date = DateTime.Today, SortOrder = 5},
new Invoice(){ CustomerName = "Abc" ,Date = DateTime.Today, SortOrder = 6}
};
Ejemplo de salida
var invGrouped = new List<List<Invoice>>
{
new List<Invoice>
{
new Invoice {CustomerName = "Abc", Date = DateTime.Today, SortOrder = 0},
new Invoice {CustomerName = "Abc", Date = DateTime.Today, SortOrder = 1},
new Invoice {CustomerName = "Abc", Date = DateTime.Today, SortOrder = 2}
},
new List<Invoice>
{
new Invoice {CustomerName = "xyz", Date = DateTime.Today.Subtract(TimeSpan.FromDays(1)), SortOrder = 3},
new Invoice {CustomerName = "xyz", Date = DateTime.Today.Subtract(TimeSpan.FromDays(1)), SortOrder = 4}
},
new List<Invoice>
{
new Invoice {CustomerName = "Abc", Date = DateTime.Today, SortOrder = 5},
new Invoice {CustomerName = "Abc", Date = DateTime.Today, SortOrder = 6}
}
};
ACTUALIZACIÓN
Solución no LINQ también será suficiente.
Sería de gran ayuda si usted podría incluir una pequeña muestra de los datos, así como exactamente lo que espera que los datos de parece una vez que se ha agrupado. – diceguyd30
@ diceguyd30! He actualizado la pregunta – IsmailS
¿Por qué las dos filas inferiores (con CustomerName "Abc" y DateTime of Today) no están en la misma lista que los otros pedidos de clientes "Abc" realizados hoy? –