本文介绍了拆分列表为N大小的小名单的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图名单分成一系列较小的列表。
我的问题:我的功能分割清单不会将它们分割成大小正确的名单。它应该将它们分为大小30名单而是将其他们分成大小114名单?
我怎样才能让我的功能拆分成列表大小名单的X个 30或更少
公共静态列表<名单,LT;浮动[]>> splitList(列表<浮动[]>的位置,INT n大小= 30)
{
清单<名单,LT;浮动[]>>名单=新名单<名单,LT;浮动[]>>(); 的for(int i =(int)的(Math.Ceiling((十进制)(locations.Count / n大小))); I> = 0;我 - ){
清单<浮动[]> subLocat =新的List<浮动[]>(位置); 如果(subLocat.Count> =((我* n大小)+ n大小))
subLocat.RemoveRange(我* n大小,n大小);
其他subLocat.RemoveRange(我* n大小,subLocat.Count-(我* n大小)); 的debug.log(索引:+ i.ToString()+,尺寸:+ subLocat.Count.ToString());
list.Add(subLocat);
} 返回列表;
}
如果我使用功能尺寸144的名单则输出是:
解决方案
public static List<List<float[]>> splitList(List <float[]> locations, int nSize=30)
{
var list = new List<List<float[]>>();
for (int i=0; i < locations.Count; i+= nSize)
{
list.Add(locations.GetRange(i, Math.Min(nSize, locations.Count - i)));
}
return list;
}
这篇关于拆分列表为N大小的小名单的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!