0

我正在为一些事情苦苦挣扎,我确信我应该能够用 Linq-to-Obj 快速完成

有27朵花,需要一个Flower[]包含5个项目的集合拆分,大约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
    }
});

我正在尝试优化它,因为它很笨重。

[更新]

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

4

1 回答 1

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

于 2012-09-27T09:10:46.377 回答