我試圖將列表拆分爲一系列較小的列表。將列表拆分成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