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)”方法,和第方法不能将 翻译成商店表达式。

+0

您正在使用{ “13”, “12,3”, “7”, “15”, “10,3”};因为j.JamMulai的价值是一个错字或价值是这样的,只是因为它有“12,3”和“10,3”这将被视为一个字符串事件即使你转换或解析 – Rajesh 2015-01-21 05:01:15

+0

它不是一个错字,值JamMulai在桌子上就像那个 – 2015-01-21 06:26:38

使用parse,而不是转换

var numbers = new string[]{ "13", "12,3", "7", "15", "10,3"}; 

    var sortedNumbers = numbers. 
     Select(number => double.Parse(number)). 
     OrderBy(number => number).ToArray(); 
+0

当我开始这个项目时它仍然不工作。该错误是:其他信息:LINQ to Entities不能识别方法'Double Parse(System.String)'方法,并且此方法不能转换为存储表达式。 – 2015-01-21 06:39:16

+0

试着看这个帖子 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(); 
+0

嗨,我怎么orderBy双重任何语言?我遇到了英文和葡萄牙语的问题。 – Patrick 2015-05-06 09:58:33