排序string是显示这样的货币数据$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);
}
Run Code Online (Sandbox Code Playgroud)
有什么更好的方法呢?它有效,而且很酷,但它不是很优雅.
Servy提供的答案按预期工作,我使用了一段时间的实现,但是我和一位同事找到了更好的方法,所以我在这里记录它.顺便说一句,我最终最终使用了这个解决方案.
decimal.Parse(input, NumberStyles.AllowCurrencySymbol | NumberStyles.Number);
Run Code Online (Sandbox Code Playgroud)