C#中的自然数值排序 [英] Natural numeric sort in C#
本文介绍了C#中的自然数值排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在C#中对通用列表进行排序时遇到问题
I have a problem when sorting a generic list in C#
我有一个List<MyObjects> myList
,而MyObject
有一个字符串属性.
I have a List<MyObjects> myList
, and MyObject
has a string property.
现在对降序排序时看起来像这样
Now it looks like this when sorting descending
2.4.88
2.4.88
2.4.70
2.4.164->这是错误的
2.4.164 -> this is wrong
2.4.15
如何对列表进行排序?
我尝试过:
myList.sort(delegate(MyObjects obj1, MyObjects obj2)
{
return obj2.version.CompareTo(obj1.version);
});
使用Linq(旧框架)不是一种选择
Its not an option to use Linq (older framework)
更新:我的列表也可以包含N/A
推荐答案
您不能将其作为字符串进行比较,因为显然这就是正确的字符串排序方式.您需要解析为数字或 Version
类:
You cannot compare as strings, because obviously thats the proper string sorting. You need to parse to numbers or to an instance of the Version
class:
myList.sort(delegate(MyObjects obj1, MyObjects obj2)
{
return new Version(obj2.version).CompareTo(new Version(obj1.version));
});
这篇关于C#中的自然数值排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文