Nuestro grupo de trabajo ha estado mucho tiempo buscando para dar espuestas a tu búsqueda, te compartimos la soluciones y nuestro objetivo es serte de gran apoyo.
Solución:
Puede agrupar por el índice dividido por el tamaño del lote, así:
var batchSize = 3;
var batched = orig
.Select((Value, Index) => new Value, Index)
.GroupBy(p => p.Index/batchSize)
.Select(g => g.Select(p => p.Value).ToList());
Usar MoreLinq.Batch
var result = inputArray.Batch(n); // n -> batch size
Ejemplo
var inputs = Enumerable.Range(1,10);
var output = inputs.Batch(3);
var outputAsArray = inputs.Batch(3).Select(x=>x.ToArray()).ToArray(); //If require as array
Usted quiere Take()
y Skip()
. Estos métodos le permitirán dividir una IEnumerable
. Entonces puedes usar Concat()
para juntarlos de nuevo.
Reseñas y valoraciones
Si estás contento con lo expuesto, tienes el poder dejar una noticia acerca de qué le añadirías a esta noticia.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)