Разделить список на меньшие списки размером N

Я пытаюсь разбить список на серию меньших списков.

Моя проблема:Моя функция разделения списков не разбивает их на списки нужного размера. Он должен разбить их на списки размером 30, но вместо этого разбивает их на списки размером 114?

Как я могу заставить свою функцию разделить список на X списков размером 30 или меньше ?

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;
}

Если я использую функцию для списка размером 144, то вывод будет:

Index: 4, Size: 120
Index: 3, Size: 114
Index: 2, Size: 114
Index: 1, Size: 114
Index: 0, Size: 114

179
задан fubo 17 August 2014 в 21:45
поделиться