如何对List <string>中的2个不同规则进行排序

Six*_*een 1 c# sorting list

我需要对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)

我怎样才能做到这一点?

感谢帮助

Ris*_*o M 5

以下是如何使用Linq OrderByThenByDescending操作做到这一点的代码段:

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)