目的
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);
}
問題
これを行うためのより良い方法は何ですか?それは機能し、それはクールですが、あまりエレガントではありません。
最終的解決
Servyによって提供され た答えは期待どおりに機能し、しばらくの間その実装を使用しましたが、同僚と私はさらに良い方法を見つけたので、ここでそれを文書化します。ところで、私は最終的にこのソリューションを使用することになりました。
decimal.Parse(input, NumberStyles.AllowCurrencySymbol | NumberStyles.Number);