作者allyusd (梦幻贱狗)
看板C_Sharp
标题Re: [问题] 使用.Compute("max( )")出现诡异结果
时间Sun Sep 8 10:50:39 2013
推文有说该栏型别是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
1F:推 Trader5566:感谢 原来可以这样用 不然我只想到用回圈复制到另一个 09/08 12:29
2F:→ Trader5566:dt去 转型再筛选 T_T Q_Q||| 09/08 12:30
3F:→ fireslayer:这是LINQ吗? 我是不太熟 不过感觉是lambda吧 09/10 00:52
4F:→ allyusd:两者都有 09/11 21:10