Функция должна вызываться, пока мой массив не станет пустым [закрыт]

Посмотрите, каждый ответ выше, который предлагает записать замену строки постоянной строкой, может быть ошибочным. Зачем? Потому что вы не уважаете региональные настройки Windows! Windows гарантирует, что пользователь имеет право устанавливать любой разделитель. S / He может открыть панель управления, перейти в область области, нажать на продвинутый и изменить символ в любое время. Даже во время вашей программы. Подумайте об этом. Хорошее решение должно знать об этом.

Итак, сначала вам придется спросить себя, откуда этот номер, что вы хотите разобрать. Если это происходит от ввода в .NET Framework без проблем, потому что он будет в том же формате. Но, возможно, это происходило извне, возможно, с внешнего сервера, возможно, из старой БД, которая поддерживает только свойства строки. Там администратор db должен был дать правило, в котором формат должен быть сохранен. Если вы знаете, например, что это будет американская БД с американским форматом, вы можете использовать этот фрагмент кода:

CultureInfo usCulture = new CultureInfo("en-US");
NumberFormatInfo dbNumberFormat = usCulture.NumberFormat;
decimal number = decimal.Parse(db.numberString, dbNumberFormat);

Это будет прекрасно работать в любой точке мира. И, пожалуйста, не используйте «Convert.ToXxxx». Класс «Конвертировать» считается только базой для конверсий в любом направлении. Кроме того: вы также можете использовать аналогичный механизм для DateTimes.

-8
задан shree thaanu 16 January 2018 в 12:43
поделиться