Sto tentando di dividere una lista in una serie di elenchi più piccoli.Dividere una lista in elenchi più piccoli di dimensione N
Il mio problema: La mia funzione di dividere gli elenchi non li suddivide in elenchi di dimensioni corrette. Dovrebbe dividerli in elenchi di dimensioni 30 ma invece li divide in elenchi di dimensione 114?
Come posso rendere la mia funzione dividere un elenco in X numero di elenchi di dimensioni 30 o meno?
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 uso la funzione in un elenco di dimensioni 144 allora l'uscita è:
Index: 4, Dimensioni: 120
Index: 3, formato: 114
Index: 2 , Dimensione: 114
Index: 1, formato: Index 114
: 0, Dimensioni: 114
Se una soluzione LINQ è accettabile, [questa domanda può essere di qualche aiuto] (http://stackoverflow.com/questions/419019/split -list-in-sottoliste-con-LINQ). –
In particolare la risposta di Sam Saffron a quella domanda precedente. E a meno che non si tratti di un incarico scolastico, vorrei solo usare il suo codice e fermarmi. – jcolebrand