Dividir uma lista em listas menores de tamanho N
Eu estou tentando dividir uma lista em uma série de listas menores.
Meu problema: Minha função para dividir listas não as divide em listas do tamanho correto. Deveria dividi-los em listas de tamanho 30, mas em vez disso os divide em listas de tamanho 114?
Como posso fazer minha função dividir uma lista em um número X de listas de tamanho30 ou menos?
public static List<List<float[]>> splitList(List <float[]> locations, int nSize=30)
{
List<List<float[]>> list = new List<List<float[]>>();
for (int i=(int)(Math.Ceiling((decimal)(locations.Count/nSize))); i>=0; i--) {
List <float[]> subLocat = new List <float[]>(locations);
if (subLocat.Count >= ((i*nSize)+nSize))
subLocat.RemoveRange(i*nSize, nSize);
else subLocat.RemoveRange(i*nSize, subLocat.Count-(i*nSize));
Debug.Log ("Index: "+i.ToString()+", Size: "+subLocat.Count.ToString());
list.Add (subLocat);
}
return list;
}
Se eu usar a função em uma lista de tamanho 144, a saída será:
Índice: 4, tamanho: 120
Índice: 3, tamanho: 114
Índice: 2, tamanho: 114
Índice: 1, tamanho: 114
Índice: 0, tamanho: 114