我正在努力解决一些问题,我确信我应该能够用Linq-to-Obj做得很快
有27朵花,需要一个包含5个项目的Flower[]
集合,大约6个记录;
List<Flowers[]>
应包含6个Flowers[]
个实体,每个Flowers[]
数组项应包含5个花对象。
我目前有类似的东西:
List<Flowers[]> flowers;
int counter = 0;
List<Flowers>.ForEach(delegate (Flower item) {
if (counter <= 5){
// add flowers to array, add array to list
}
});
我正在努力优化它,因为它很笨重。
[更新]
我可以对对象进行数组推送,删除我已经运行过的项目,但是没有更简单的方法吗?
答案 0 :(得分:1)
var ITEMS_IN_GROUP = 5;
var result = list.Select((Item, Index) => new { Item, Index })
.GroupBy(x => x.Index / ITEMS_IN_GROUP)
.Select(g => g.Select(x=>x.Item).ToArray())
.ToList();
您可能还想尝试morelinq的Batch