按第二个值(int)对List <string []>进行排序

时间:2015-06-24 14:01:39

标签: c# sorting

我有一个清单

List<string[]> listname = ...

列表如下所示:

[string][string][string]

我想用第二个字符串对列表进行排序。

第二个字符串是一个以字符串形式显示的数字,我想保持这种方式,我需要这样。

我希望数字按递增顺序排列。

数据示例:

["RDP"]["3389"]["TCP"] 
["HTTP"]["80"]["TCP"]
["HTTPS"]["443"]["TCP"]

我想按帖子编号排序。

在这个例子中&#34; RDP&#34;将成为最后一个。

我该怎么办?

2 个答案:

答案 0 :(得分:0)

var sortedList = listname.OrderBy(l => int.Parse(l[1]));

这假设每个数组中的第二个条目可解析为int。如果您对此不确定,则需要添加一些检查,并使用int.TryParse

答案 1 :(得分:0)

您可以在OrderBy中引用数组的相应索引:

var l = new List<string[]>() { 
                                new string[] { "a", "b", "c" }, 
                                new string[] { "b", "a", "c" }, 
                                new string[] { "c", "c", "c" }, 
                                };
var s = l.OrderBy(c => c[1]).ToList();