簡體   English   中英

Orderby字符串,但值是數字(雙精度)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM