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

标签 c# list sorting

我需要对 List<string> 进行排序遵循 2 条规则。

我的 string元素将始终被格式化为 XXXnnnnEXXXnnnnD其中 X是从 A 到 Z 的大写字母和 n是0到9的数字。

我想按字母顺序对我的列表进行排序,但我想要 E D 之前的字符串字符串如下所示

DFG0001D
AWK0007E
ORK0127E
AWK0007D
DFG0001E
ORK0127D

需要排序为

AWK0007E
AWK0007D
DFG0001E
DFG0001D
ORK0127E
ORK0127D

我怎样才能做到这一点?

感谢帮助

最佳答案

这是您如何使用 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();

关于c# - 如何对 List<string> 中的 2 个不同规则进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55629707/

相关文章:

c# - PDF -Adobe 数字版

c# - 暂时锁定端口以供测试

c# - 如何在 C# 应用程序中使用 *.lib 文件?

java - 在 Java 中为一个数字生成多个组合列表

c# - 可枚举或列表的属性

sorting - ExtJs 3 TreePanel 排序不起作用

c# - Entity Framework 服务器端计算值

java - 导入 MSN 联系人列表

swift - 对 NSDecimalNumber 的 NSArray 进行排序

algorithm - 数字数组的最优冒泡排序算法