我有一个List<string>,我想从中获取5个项目组.没有键或任何简单的分组......但它总是5的倍数.
例如
{"A","16","49","FRED","AD","17","17","17","FRED","8","B","22","22","107","64"}
Run Code Online (Sandbox Code Playgroud)
参加团队:
"A","16","49","FRED","AD"
"17","17","17","FRED","8"
"B","22","22","107","64"
Run Code Online (Sandbox Code Playgroud)
但我无法找到一个简单的方法来做到这一点!
很确定它可以用枚举和Take(5)来完成......
List<List<string>> result = new List<List<string>>();
for(int i = 0; i < source.Count; i += 5 )
result.Add(source.Skip(i).Take(5).ToList());
Run Code Online (Sandbox Code Playgroud)
像这样?
你可以使用整数除法技巧:
List<List<string>> groupsOf5 = list
.Select((str, index) => new { str, index })
.GroupBy(x => x.index / 5)
.Select(g => g.Select(x => x.str).ToList())
.ToList();
Run Code Online (Sandbox Code Playgroud)