客观的
对在一组数据中以数字string
方式显示这样的货币数据的 a 进行排序。$1,995.94
代码
我目前正在使用下面的代码示例将string
值转换为,decimal
以便我可以对其进行正确排序。
if (sortBy == "checkAmount")
{
StringBuilder sb = new StringBuilder();
foreach (var c in Convert.ToString(p.GetType().GetProperty(sortBy).GetValue(p, null)))
{
if (!char.IsDigit(c) && c != '.') { continue; }
sb.Append(c);
}
return Convert.ToDecimal(sb.ToString());
}
else
{
return p.GetType().GetProperty(sortBy).GetValue(p, null);
}
问题
有什么更好的方法来做到这一点?它有效,这很酷,但它不是很优雅。
最终解决方案
Servy 提供 的答案按预期工作,我使用了该实现一段时间,但我和一位同事找到了更好的方法,所以我在这里记录它。顺便说一句,我最终使用了这个解决方案。
decimal.Parse(input, NumberStyles.AllowCurrencySymbol | NumberStyles.Number);