[英]Orderby string but that values are numbers (double)
我想排序(JamMulai)
是字符串,但該值是數字。 我想要(JamMulai)
按數字排序
我的查詢:
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
我正在嘗試轉換為double:
var query = from j in db.JadwalKuliah
orderby Convert.ToDouble(j.JamMulai)
select j
但錯誤是:
附加信息:LINQ to Entities無法識別方法'Double 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();
這里的問題是您的查詢將被轉換為SQL並在數據庫上運行,並且Entity Framework不知道如何將Double ToDouble(System.String)
轉換為有效的SQL代碼,您可以將數據加載到內存中,然后執行排序依據: -
var query = db.JadwalKuliah.ToList()
.OrderBy(x => double.Parse(x))
.ToArray();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.