如何将IEnumerable >>转换为IEnumerable >
问题描述:
我试图将一些逗号分隔的行分割成最大大小为2的组。 如何将组的集合转换为列表如下所示? 我预计分区在分组之后是3,然后是4。如何将IEnumerable <IEnumerable <IGrouping <int,string> >>转换为IEnumerable <IEnumerable <string>>
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(???)
答
这就是我想要的
var parts = groups.SelectMany(x => x).Select(y => y.Select(z => z));
我想作为输出是什么了IEnumerable> {{a,b,c},{a,d,e}}。 {{b,c,d},{b,e,d}}, {{b,f,g}}, {{e}} } –
user330612
这正是我的答案给你的。 – Enigmativity
@ user330612 - 除了您的查询不会将'{b,f,g}'分开。 – Enigmativity