我写我公司的应用程序,我目前工作的搜索功能。当用户搜索一个项目时,我想显示最高版本(存储在数据库中)。排序依据()不是订购号正确的C#
的问题是,该版本被存储为字符串而不是int和当我对结果排序依据(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));
这将编译但不工作。
我会建议你做你的问题(为了通过'Q => INT到底什么.Parse(q.Version)'); “不起作用”是什么意思? – 2010-03-09 15:26:40
也许你的问题在这里:'(q => Int32.Parse(q.Version))''。它应该是'(q => Int32.Parse(q))'与下面的工作版本保持一致吗? – MusiGenesis 2010-03-09 15:27:12
我收到此错误消息:查看枚举的结果时,“Method'Int32 Parse(System.String)'不支持转换为SQL” – Darcy 2010-03-09 15:27:29