我正在为我的公司编写一个应用程序,目前正在开发搜索功能。当用户搜索一个项目时,我想显示最高版本(存储在数据库中)。
问题是,版本存储为字符串而不是 int,当我对结果执行 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));
这编译但不工作。
最佳答案
LinqToSql 转换器不支持 Int32.Parse。支持 Convert.ToInt32。
关于c# - Orderby() 没有正确排序数字 c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2410070/