如何对列表进行排序 通过该字符串描述的一部分

问题描述 投票:2回答:6

我有这样的列表:

List<string> list_lines = new List<string>();
list_lines.add("name1__pass1__com__14__55");
list_lines.add("name2__pass2__com__14__5445");
list_lines.add("name3__pass3__com__14__456456");
list_lines.add("name4__pass4__com__14__1357");
list_lines.add("name5__pass5__com__14__20000");
list_lines.add("name6__pass6__com__14__25");
list_lines.add("name7__pass7__com__14__12");

以及更多...

如您所见,该列表中的每个字符串中都有一个分隔符->“ __”。均值:

string[] Separator = new string[] { "__" };   

foreach(string s in list_lines)
{
    string[] line_ar = s.Split(Separator, StringSplitOptions.None);
    int Num  = int.parse(line_ar[4]);
}

我想按该列表的Num部分对该列表进行排序。我使用StackOverflow测试了一些方法,但是其中的一个错误列出了很多问题。

非常感谢您帮助我解决问题

c# string list sorting
6个回答
10
投票

Asc:


2
投票

如果数字总是在最后一个下划线字符之后开始,那么这应该起作用:


2
投票
var myList = list_lines.OrderBy(x => int.Parse(x.Split(new string[] {"__"}, StringSplitOptions.None)[4])).ToList();

1
投票

其他答案将创建一个new


0
投票
OrderBy

0
投票
© www.soinside.com 2019 - 2024. All rights reserved.