list <string []>。groupby / orderby Linq </string []>

时间:2013-06-01 05:53:08

标签: c# linq group-by

我的代码:

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]元素排序。我没有得到正确的输出。怎么了?

1 个答案:

答案 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();