Re: [問題] 使用.Compute("max( )")出現詭異結果

看板C_Sharp (C#)作者 (夢幻賤狗)時間12年前 (2013/09/08 10:50), 編輯推噓1(103)
留言4則, 3人參與, 最新討論串2/2 (看更多)
推文有說該欄型別是string, 所以 Max 是字串排序結果,不是數字比較結果 以第一個列子來說: "6102" 跟 "940" 的比較, 第一個字是 '6' < '9',所以 "6102" < "940" "9999" 跟 "940" 的比較, 第一個字是 '9' = '9' 然後 第二個字是 '9' > '4' 所以 "9999" > "940" 所以你要先將該欄位轉型為數字再比較, 如果你的.net 版本是3.5以上的話,可以使用LINQ: int maxLevel = flow.AsEnumerable().Max(dt => Convert.ToInt32(dt["VOL"])); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.41.134.7

09/08 12:29, , 1F
感謝 原來可以這樣用 不然我只想到用迴圈複製到另一個
09/08 12:29, 1F

09/08 12:30, , 2F
dt去 轉型再篩選 T_T Q_Q|||
09/08 12:30, 2F

09/10 00:52, , 3F
這是LINQ嗎? 我是不太熟 不過感覺是lambda吧
09/10 00:52, 3F

09/11 21:10, , 4F
兩者都有
09/11 21:10, 4F
文章代碼(AID): #1IA-O1Ao (C_Sharp)
文章代碼(AID): #1IA-O1Ao (C_Sharp)