如何转换IEnumerable <ienumerable <igrouping <int,string>&gt;&gt;到IEnumerable <ienumerable <string>&gt;

时间:2015-08-16 03:14:16

标签: c# linq

我试图将一些逗号分隔的行分成最大为2的组。 如何将组的集合转换为列表列表如下? 我希望分区首先是3,然后是分组后的4。

  List<string> chunk = new List<string>()
            {
                "a,b,c",
                "a,d,e",
                "b,c,d",
                "b,e,d",
                "b,f,g",
                "e"
            };

            var partitons = chunk.GroupBy(c => c.Split(',')[0], (key, g) => g);
            var groups = partitons.Select(x => x.Select((i, index) => new { i, index }).GroupBy(g => g.index / 2, e => e.i));
            IEnumerable<IEnumerable<string>> parts = groups.Select(???)

2 个答案:

答案 0 :(得分:1)

这就是我想要的

var parts = groups.SelectMany(x => x).Select(y => y.Select(z => z));

答案 1 :(得分:0)

试试这个:

partitons = groups.Select(x => x.SelectMany(y => y));

我明白了:

partitons