将对象列表拆分为没有linq的子列表

时间:2014-10-08 01:22:41

标签: c# .net linq

嗨,大家好

我希望获得将对象列表拆分为子列表的代码,然后搜索" stackoverflow"。我发现这个代码可以做我真正想要的。但是我想在没有使用循环和条件的linq(正常方式)的情况下做同样的事情。

代码示例:

public List<object> BL = new List<object>();
List<object> List = new List<object>();
void CreateObj(int count)
{
    for (int i = 0; i < count; i++)
    {
        BL.Add(string.Format("No. {0}", i));
    }
}

void SplitObj()
{
    List = BL
        .Select((x, i) => new { Index = i, Value = x })
        .GroupBy(x => x.Index / 12)
        .Select(x => x.Select(v => v.Value).ToList())
        .ToList<object>();
}

1 个答案:

答案 0 :(得分:0)

那么你想将List拆分成List&gt;它听起来像(并根据提供的代码判断)。

以下是执行相同操作的迭代方法:

    List<List<object>> newList = new List<List<object>>();
    void SplitObj(int objectsPerPart)
    {
        if (BL == null || BL.Count < 1)
            return;

        List<object> current = new List<object>();
        current.Add(BL[0]);
        for (int i = 1; i < BL.Count; i++)
        {
            if (i % objectsPerPart == 0)
            {
                newList.Add(current);
                current = new List<object>();
            }
            current.Add(BL[i]);
        }
    }