按 2 个小数点对字符串列表进行排序

Dan*_*all 3 c# sorting string

我正在尝试按列表包含的 x 个对象之一中的值对列表进行排序。这是我需要的订单:

1
1.1
1.2
1.3
1.4
1.5
1.10
1.11
1.12
4.1
4.2
4.15
Run Code Online (Sandbox Code Playgroud)

我尝试了以下方法:

var lRetItems = lExportItems.OrderBy(d => d.linkid*);
Run Code Online (Sandbox Code Playgroud)

IEnumerable<item> lRetItems = 
from x in lExportItems
orderby x.linkid*
select x;
Run Code Online (Sandbox Code Playgroud)

*linkid = 字符串

但都没有给我我想要的顺序,因为这些方法 1.10 遵循 1.1 而不是 1.2 遵循 1.1。以下是上述方法提供的错误排序示例:

1
1.1
1.10
1.11
1.12
1.2
1.3
1.4
...
Run Code Online (Sandbox Code Playgroud)

有谁知道我如何以与第一个示例相同的方式对列表进行排序?

如果这是 1.10 的两倍,则与 1.1 相同...因此上面的顺序。但我希望字符串至少按长度排序?

有谁知道可以从这些字符串中提供我需要的顺序的方法吗?

这是一个 Rextester,显示了我根据评论尝试过的内容(失败):

http://rextester.com/JJB33165

谢谢。

myb*_*ame 5

var result = lRetItems.OrderBy(x => Version.Parse(x));
Run Code Online (Sandbox Code Playgroud)

您可以使用Version类。

这是Rexester 中的现场演示