Orderby() not ordering numbers correctly c#(Orderby() 没有正确排序数字 c#)
问题描述
我正在为我的公司编写一个应用程序,目前正在研究搜索功能.当用户搜索一个项目时,我想显示最高版本(存储在数据库中).
I am writing an app for my company and am currently working on the search functionality. When a user searches for an item, I want to display the highest version (which is stored in a database).
问题是,版本存储为字符串而不是整数,当我对结果执行 OrderBy(q=>q.Version) 时,它们会像
The problem is, the version is stored as a string instead of int, and when I do an OrderBy(q=>q.Version) on the results, they are returned like
1
10
11
2
3
...
显然 2 在 10 之前.
Obviously 2 comes before 10.
有没有办法让我将版本转换为整数,或者是否有一个简单的 IComparer?到目前为止,我找不到任何实质性的东西.
Is there a way for me to cast the version as an integer or is there a simple IComparer out there? I couldn't find anything substantial thus far.
我尝试这样做:
var items = (from r in results
select r).OrderBy(q => Int32.Parse(q.Version));
这可以编译但不起作用.
This compiles but doesn't work.
推荐答案
LinqToSql 转换器不支持 Int32.Parse.支持 Convert.ToInt32.
Int32.Parse is not supported by the LinqToSql translator. Convert.ToInt32 is supported.
http://msdn.microsoft.com/en-us/library/sf1aw27b.aspx
http://msdn.microsoft.com/en-us/library/bb882655.aspx
这篇关于Orderby() 没有正确排序数字 c#的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Orderby() 没有正确排序数字 c#
基础教程推荐
- 错误“此流不支持搜索操作"在 C# 中 2022-01-01
- 经典 Asp 中的 ResolveUrl/Url.Content 等效项 2022-01-01
- 如何动态获取文本框中datagridview列的总和 2022-01-01
- 首先创建代码,多对多,关联表中的附加字段 2022-01-01
- 在 VS2010 中的 Post Build 事件中将 bin 文件复制到物 2022-01-01
- 是否可以在 asp classic 和 asp.net 之间共享会话状态 2022-01-01
- 将事件 TextChanged 分配给表单中的所有文本框 2022-01-01
- 全局 ASAX - 获取服务器名称 2022-01-01
- JSON.NET 中基于属性的类型解析 2022-01-01
- 从 VS 2017 .NET Core 项目的发布目录中排除文件 2022-01-01
