我试图将列表拆分为一系列较小的列表。将列表拆分成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的列表上,则输出为:
指数:4,尺寸:120
指数:3,尺寸:114
指数:2 ,尺寸:114
指数:1,尺寸:114
指数:0,大小:114
如果LINQ的解决方案是可以接受的,[这个问题可能有一定的帮助(http://stackoverflow.com/questions/419019/split -list - 进入 - 子列表与 - LINQ)。 – 2012-07-13 03:28:53
具体Sam Saffron对上一个问题的回答。除非这是一个学校作业,否则我只会使用他的代码并停止。 – jcolebrand 2012-07-13 03:35:24