我有一个List<string>
,其中包含以下值:
1 / 324324
10 / 324234
61 / 917752
62 / 917762
7 / 917718
8 / 917719
9 / 917720
我希望根据正斜杠之前的数字将它们排序如下:
1 / 324324
7 / 917718
8 / 917719
9 / 917720
10 / 324234
61 / 917752
62 / 917762
因为它们是字符串值,所以list.sort()方法不起作用。
任何想法?
答案 0 :(得分:6)
您可以按斜线拆分项目并按数字排序:
var sorted = input.OrderBy(a=>int.Parse(a.Split('/')[0]));
答案 1 :(得分:0)
使用List<T>.Sort()
方法
// init list
var list = new List<String>();
// add items
// some code here
// sort items
list.Sort((s1, s2) =>
{
var n1 = Int32.Parse(s1.Split('/')[0]);
var n2 = Int32.Parse(s2.Split('/')[0]);
return n1 - n2;
});
使用linq你可以像
那样做var sortedList = list.OrderBy(item=> Int32.Parse(item.Split('/')[0])).ToList();
答案 2 :(得分:0)
如果斜杠左侧的值是唯一的,您可以在斜杠上拆分字符串,修剪值并将它们添加到sorted list。然后你可以让框架为你工作。