У меня проблема с правильной работой TryParse. У меня есть список значений, которые, как я почти уверен, действительны (поскольку они поступают из другого компонента нашей системы), но я хотел бы убедиться, что существует надлежащая обработка ошибок.
Вот пример списка моих значений :
20,00
У меня есть список значений, которые, как я почти уверен, действительны (поскольку они поступают из другого компонента нашей системы), но я хотел бы сделать ...
У меня проблема с правильной работой TryParse. У меня есть список значений, которые, как я почти уверен, действительны (поскольку они поступают из другого компонента нашей системы), но я хотел бы убедиться, что существует надлежащая обработка ошибок.
Вот пример списка моих значений :
20,00
У меня есть список значений, которые, как я почти уверен, действительны (поскольку они поступают из другого компонента нашей системы), но я хотел бы сделать ...
У меня проблема с правильной работой TryParse. У меня есть список значений, которые, как я почти уверен, действительны (поскольку они поступают из другого компонента нашей системы), но я хотел бы убедиться, что существует надлежащая обработка ошибок.
Вот пример списка моих значений :
20,00
20.00
-150.00
И вот метод, который я изначально написал:
private decimal CalculateValue(IEnumerable<XElement> summaryValues)
{
decimal totalValue = 0;
foreach (XElement xElement in summaryValues)
{
decimal successful;
Decimal.TryParse(xElement.Value, out successful);
if (successful > 0)
totalValue += Decimal.Parse(xElement.Value);
}
return totalValue;
}
Переменная 'Success' возвращала false для -150.00, поэтому я добавил NumberStyles:
private decimal CalculateValue(IEnumerable<XElement> summaryValues)
{
decimal totalValue = 0;
foreach (XElement xElement in summaryValues)
{
decimal successful;
Decimal.TryParse(xElement.Value, NumberStyles.AllowLeadingSign, null, out successful);
if (successful > 0)
totalValue += Decimal.Parse(xElement.Value, NumberStyles.AllowLeadingSign);
}
return totalValue;
}
Однако теперь, когда у меня есть NumberStyles, ни один из цифры буду разбирать! Я чувствую себя хорошо, когда для IFormatProvider установлено значение null, поскольку это все в нашей системе. Кто-нибудь видит, что я делаю неправильно?