使用Linq从集合中获取组

use*_*042 2 c# linq

我在C#程序中收集了55个字符串值.我想从这个集合中获得每个包含20个(或更少)项目的组.

所以,这意味着,我将有3组20,20和15项.然后对于每个组,我需要调用一个方法.

我如何使用Linq实现这一目标?

谢谢.

Lee*_*Lee 7

List<string> strings = ...
List<List<string>> groups = strings
    .Select((s, idx) => new { Item = s, Group = idx / 20 })
    .GroupBy(s => s.Group)
    .Select(grp => grp.Select(g => g.Item).ToList())
    .ToList();
Run Code Online (Sandbox Code Playgroud)