C# 对双打列表排序

C# 对双打列表排序,c#,sorting,C#,Sorting,我试图通过列表中某个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); 及 有人知道我如何按照第一个示例的相同方式排列列表吗?尝试将这些双倍货币想象为您的国家货币。为了举例,让我们假设美元。1.2美元比1.10美元多,1.10美元与1.1美元(即1.10美元=1.1美元

我试图通过列表中某个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);


有人知道我如何按照第一个示例的相同方式排列列表吗?

尝试将这些双倍货币想象为您的国家货币。为了举例,让我们假设美元。1.2美元比1.10美元多,1.10美元与1.1美元(即1.10美元=1.1美元)相同,如果这些是字符串,而不是数字,则不会产生相同的结果


如果这些是字符串,“1.10”将位于“1.5”之后,因为它的长度更大,而不是因为它的内容。尽量试试看。

@DanHall它们是双精度的,但你需要的是字符串。如果它们是
双精度的
-s,那么
1.1
1.10
有何不同?这是非常不安全的:a
1.3
在窗帘后面通常是
1.29999999…
-ish。这就意味着
1.3
可能是最后一个元素。@RufusL不喜欢好的猜谜游戏:)@Chris这几乎是无用的,因为你无法在双重列表中捕捉
1.1
1.10
之间的差异。您甚至不能将它们以不同的方式转换为字符串。。。除非使用某种if逻辑,否则字符串的排序顺序完全相同:-/尝试使用实际列表,而不是IQueryable或IEnumerable。List lRetItems=lExportItems.Select(l=>l.linkid.ToList();
IEnumerable<item> lRetItems = 
from x in lExportItems
orderby x.linkid
select x;
1
1.1
1.10
1.11
1.12
1.2
1.3
1.4
...