我需要对List<string>以下2条规则进行排序。
我的string作为元件将总是被格式化XXXnnnnE或者XXXnnnnD其中X是从A大写字母到Z和n是数字0到9。
我想按字母顺序对列表进行排序,但我希望E字符串先于D字符串,如下所示
DFG0001D
AWK0007E
ORK0127E
AWK0007D
DFG0001E
ORK0127D
Run Code Online (Sandbox Code Playgroud)
需要排序为
AWK0007E
AWK0007D
DFG0001E
DFG0001D
ORK0127E
ORK0127D
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
感谢帮助
以下是如何使用Linq OrderBy和ThenByDescending操作做到这一点的代码段:
string[] arr = { "DFG0001D", "AWK0007E", "ORK0127E", "AWK0007D", "DFG0001E", "ORK0127D" };
arr = arr
.OrderBy(r => r.Substring(0, 7))
.ThenByDescending(s => s.Substring(7, 1))
.ToArray();
Run Code Online (Sandbox Code Playgroud)