对象集合优化

时间:2012-09-18 09:26:51

标签: optimization linq-to-objects

我正在努力解决一些问题,我确信我应该能够用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
    }
});

我正在努力优化它,因为它很笨重。

[更新]

我可以对对象进行数组推送,删除我已经运行过的项目,但是没有更简单的方法吗?

1 个答案:

答案 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();

您可能还想尝试morelinqBatch