Dig*_*bar 3 .net c# linq sorting
我有一个以下方式的字符串: -
string[] things = new string[] { "1", "10", "2", "1_1", "2_1","3_1" };
Run Code Online (Sandbox Code Playgroud)
所需的输出是:
"1",
"1_1",
"2",
"2_1",
"3_1",
"10",
Run Code Online (Sandbox Code Playgroud)
我如何使用LINQ实现这一目标?
是的,您可以拆分每个部分_并将第一个字符串部分转换为整数.在事后排序时,这将确保10不是之前2.然后在第二步中根据最后一个数字进行订购
string[] things = new string[] { "5_3", "5_2", "1", "10", "2", "1_1", "2_1", "1_2", "3_1" };
string[] ordered = things.OrderBy(x=>Convert.ToInt32(x.Split('_').First())).
ThenBy(x=>Convert.ToInt32(x.Split('_').Last())).ToArray();
Run Code Online (Sandbox Code Playgroud)
输出:
| 归档时间: |
|
| 查看次数: |
115 次 |
| 最近记录: |