按列表的索引范围将列表分组

时间:2016-06-11 16:25:38

标签: c# linq

我有一个来源整数列表,数字从0到50。

然后我想要一个分组目标列表,意思是:

group1: 1,2,3,4,5,6,7,8,9,10
group2: 11,12,13,14,15,16,17,18,19,20
group3: etc... ,30
group4: etc... ,40
group5: etc... ,50

这里的groupFactor是5。

如何根据可能是任意数字的组因子对整数列表进行分组?

更新

如果组因子是6 会有一个额外的:

group6: etc... ,60

3 个答案:

答案 0 :(得分:2)

让k成为你的组因子。通过将列表成员乘以k然后除以50来对列表进行分组,并将序列分组到结果商上。

答案 1 :(得分:0)

试试这个

static void Main(string[] args)
{
    List<int> input = new List<int>();
    for (int i = 0; i <= 50; i++)
    {
        input.Add(i);
    }

    List<List<int>> output = input.Select((x, i) => new { x = x, i = (int)(x / 10) }).GroupBy(y => y.i).Select(z => z.Select(a => a.x).ToList()).ToList();
}

答案 2 :(得分:0)

你的问题有点模糊,但对于你提供的样本,我发现这个奇特的小组:)

var list = new List<int>();
for (int i=0; i <= 50; i++)
{
    list.Add(i);
}
var result = list.GroupBy( n => (n-1)/10 );