Входная строка имела неверный формат C#

241
19 мая 2017, 12:38

Вот код

List<int> TextElements= null;
for (int i = 0; i < CoutOfElements(); i++)
TextElements.Add(Convert.ToInt32(GetText(i).Substring(1,GetText(i).Length-1)));

где GetText(i) = -40%

Выдаёт ошибку "входная строка имела неверный формат"

Answer 1

В результате выполнения: GetText(i).Substring(1,GetText(i).Length-1)

результат "40%", а не "40". Надо изменить на Length-2

List<int> TextElements= null;
for (int i = 0; i < CoutOfElements(); i++)
     TextElements.Add(Convert.ToInt32(GetText(i).Substring(1,GetText(i).Length-2)));

Учитесь пользоваться отладчиком.

Answer 2

Скорее всего то, что получается в результате манипуляции со строкой - это не число => Convert.ToInt32 выдает данное исключение. За подробностями обращайтесь к отладчику и смотрите, что возвращается.

READ ALSO
Как записать List в файл?

Как записать List в файл?

Есть информация, добавляется во время выполнения программы в лист, нужно записать этот лист в файл, и при каждом запуске программы, этот файл...

587
Ширина TabPages

Ширина TabPages

Имею 3 TabPages, как можно сделать, чтобы их ширина полностью заняла всю ширину TabControl? FillToRight не работаетЕсли только не задать ширину свою и сделать...

220
Вертикальные названия столбцов DataGridView

Вертикальные названия столбцов DataGridView

ЗдравствуйтеВывожу в таблицу значения из базы данных

199
Зависает программа при вставки в фрейм xaml

Зависает программа при вставки в фрейм xaml

UserControl2xaml типа Controls:MetroWindow ( MahApps

225