【发布时间】:2018-01-11 09:46:29
【问题描述】:
我正在尝试按列表包含的 x 个对象之一中的值对列表进行排序。这是我需要的顺序:
1
1.1
1.2
1.3
1.4
1.5
1.10
1.11
1.12
4.1
4.2
4.15
我尝试了以下方法:
var lRetItems = lExportItems.OrderBy(d => d.linkid);
和
IEnumerable<item> lRetItems =
from x in lExportItems
orderby x.linkid
select x;
但两者都没有给我想要的顺序,因为这些方法 1.10 遵循 1.1 而不是 1.2 遵循 1.1。以下是上述方法提供的错误排序示例:
1
1.1
1.10
1.11
1.12
1.2
1.3
1.4
...
有谁知道我如何以与第一个示例相同的方式对列表进行排序?
【问题讨论】:
-
@DanHall 他们是双打,但你想要是字符串。
-
如果他们是
double-s,那么1.1和1.10有什么不同? -
这是非常不安全的:
1.3在幕后通常是1.299999999...-ish。所以这意味着1.3可以是最后一个元素。 -
@RufusL 谁不喜欢猜谜游戏:)
-
@Chris 这几乎没用,因为您无法在双重列表中捕获
1.1和1.10之间的区别。您甚至无法将它们以不同的方式转换为字符串...除非使用某种 if-logic