Orderby()在c#中无法正确排序数字。

13 浏览
0 Comments

Orderby()在c#中无法正确排序数字。

我正在为我的公司开发一个应用程序,目前正在处理搜索功能。当用户搜索一个项目时,我想显示最高版本(存储在数据库中)。

问题是,版本号是以字符串形式而不是整数形式存储的,当我对结果进行OrderBy(q=>q.Version)排序时,它们以以下方式返回:

1
10
11
2
3
...

显然,2排在10之前。

有没有办法将版本号转换为整数,或者有没有一个简单的IComparer可以使用?到目前为止,我找不到任何有实质性作用的东西。

我尝试过这样做:

var items = (from r in results
             select r).OrderBy(q => Int32.Parse(q.Version));

这段代码可以编译,但是不起作用。

0