Saltar al contenido

Dividir un array utilizando LINQ

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)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *