首页 > 解决方案 > 无法使用 OrderBy C# 功能以某种方式对列表进行排序

问题描述

编辑- 右侧的正确结果(在下面的示例中)是 excel 如何进行排序以及我试图在 C# 中使用 OrderBy 完成的工作。

我有以下 OrderBy 声明:

tempList.OrderBy(x => x.value);

并得到以下结果:

01P
41
90

但我需要它改为以下内容:

41
90
01P

有没有办法使用 OrderBy 来完成这种类型的排序?我已经尝试添加 StringComparison.(type) 的所有变体,但我无法让排序工作。

任何帮助深表感谢!

更多示例如下:

Sorted by OrderBy:                        What is needed instead:

示例 1)

35                                        7
7                                         35

例 2)

44K                                       692
692                                       44K

例 3)

0EP                                       629
0ET                                       0EP
692                                       0ET

例 4)

10W                                       110
110                                       10W

标签: c#linqsortingsql-order-by

解决方案


我想你之前想要一个数字排序。尝试如下:

string[] myArray = { "0EP", "0ET", "692" };

var result = myArray.OrderBy(a => !int.TryParse(a, out var _)).ThenBy(a => a).ToList();

推荐阅读