Конвертировать валютную строку в десятичную?

Задача

Сортироватьstring это отображает данные валюты, как это$1,995.94 численно в наборе данных.

CodeI»

м в настоящее время, используя приведенный ниже пример кода для преобразования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);

Ответы на вопрос(5)

Ваш ответ на вопрос