Orderby字符串,但值是数字(双)
我想排序一个(JamMulai)
是字符串,但值是数字。我想(JamMulai)
排序数字Orderby字符串,但值是数字(双)
我的查询:
var query = from j in db.JadwalKuliah
orderby j.JamMulai
select j
和j.JamMulai
值是像{ "13", "12,3", "7", "15", "10,3"};
输出:
(10,3),(12,3 ),13,15,7
我想:
7,(10,3),(12,3),13,15
我想转换为双:
var query = from j in db.JadwalKuliah
orderby Convert.ToDouble(j.JamMulai)
select j
但误差:
其他信息:LINQ实体无法识别方法 “双ToDouble(System.String)”方法,和第方法不能将 翻译成商店表达式。
使用parse
,而不是转换
var numbers = new string[]{ "13", "12,3", "7", "15", "10,3"};
var sortedNumbers = numbers.
Select(number => double.Parse(number)).
OrderBy(number => number).ToArray();
当我开始这个项目时它仍然不工作。该错误是:其他信息:LINQ to Entities不能识别方法'Double Parse(System.String)'方法,并且此方法不能转换为存储表达式。 – 2015-01-21 06:39:16
试着看这个帖子 http://stackoverflow.com/questions/5971521/linq-to-entities-does-not-recognize-the-method-double-parsesystem-string-met – 2015-01-21 07:11:00
这里的问题是,你的查询被转换成SQL和数据库上运行,和Entity Framework不知道如何Double ToDouble(System.String)
转化为有效的SQL代码,则可以将数据加载到存储器,然后执行排序依据: -
var query = db.JadwalKuliah.ToList()
.OrderBy(x => double.Parse(x))
.ToArray();
嗨,我怎么orderBy双重任何语言?我遇到了英文和葡萄牙语的问题。 – Patrick 2015-05-06 09:58:33
您正在使用{ “13”, “12,3”, “7”, “15”, “10,3”};因为j.JamMulai的价值是一个错字或价值是这样的,只是因为它有“12,3”和“10,3”这将被视为一个字符串事件即使你转换或解析 – Rajesh 2015-01-21 05:01:15
它不是一个错字,值JamMulai在桌子上就像那个 – 2015-01-21 06:26:38