【发布时间】:2014-11-10 05:19:39
【问题描述】:
我有一个距离字符串列表,如下所示:
1.3 公里
20 公里
44 公里
22.5 公里
26.7 公里
目前我按长度排序,然后“按字母顺序”排序:
listofdistances.OrderBy(x => x.Distance.Length).ThenBy(x => x.距离)
这会给我一个按如下顺序排列的列表:
20 公里
44 公里
1.3 公里
22.5 公里
26.7 公里
这就是代码的作用,我理解。现在我想要一个按实际距离对字符串进行排序的解决方案,但我不知道如何实现它:
1.3 公里
20 公里
22.5 公里
26.7 公里
44 公里
非常感谢任何帮助。
【问题讨论】:
-
您可以通过设置culture in an overload of
OrderBy来控制字符串的顺序。您可能需要创建自己的文化。 -
也许将距离存储在具有 unit 和 value 属性的类中会更好。也许这个类也能够在单位之间进行转换,以便它甚至能够正确地对混合了米、公里和英里的列表进行排序。
标签: c# list sorting observablecollection