我的代码:
List<string[]> records=new List<string[]>();
.....
....
#Now i has list in records
var sortedRecords = records
.OrderBy(o => o[0])
.ThenBy(t=>t[3])
.ToList();
.....
我想按[0]元素分组,按每组中的[3]元素排序。我没有得到正确的输出。怎么了?
答案 0 :(得分:3)
您可以使用GroupBy o[0]
拳头,然后它会为您提供分组结果。然后,您可以按d[3]
对每个项目进行排序。从分组的有序分组列表开始,您可以使用SelectMany
方法将其展平回到您期望的列表。
var sortedRecords = records
.GroupBy(o => o[0])
.Select(g => g.OrderBy(d => d[3]))
.SelectMany(g=>g)
.ToList();