c# - Orderby() 没有正确排序数字 c#

标签 c# asp.net-mvc linq linq-to-sql sql-order-by

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

问题是,版本存储为字符串而不是 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。

http://msdn.microsoft.com/en-us/library/sf1aw27b.aspx

http://msdn.microsoft.com/en-us/library/bb882655.aspx

关于c# - Orderby() 没有正确排序数字 c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2410070/

相关文章:

c# - 无需编辑大量配置文件的版本控制软件

c# - 将日期值从 Ajax 调用传递到 MVC

c# - 将数据传递给服务器控件中的子控件的正确模式

c# - ASP.NET Core 中的 HttpRuntime.AppDomainAppPath 等价物

c# - 默认情况下是否编译了 LINQ to Entities 4.0 查询?

c# - Linq查询如何从今天的日期中选择最后一周的数据

c# - 当 ASP.NET Core 应用程序关闭时,如何正确安全地处理在容器中注册的单例实例

asp.net - 防止登录用户访问asp.net mvc 5中的登录页面

javascript - 我应该如何处理 javascript 调用中的 Asp.net MVC URL?

c# - 创建可用作函数/方法的类型