Как преобразовать пустую строку в int32?

c# html-agility-pack

Вопрос

Я разрабатываю программное обеспечение, которое захватывает данные из таблицы html. Итак, эта строка:

team.SelectSingleNode(".//td[@class='number total won total_won']")?.InnerText.Trim();

возвращает: ""

(Я использую hmml agility pack для DOM-манипуляции.)

И полная строка такова:

Convert.ToInt32(
  team.SelectSingleNode(
    ".//td[@class='number total won total_won']")
  ?.InnerText.Trim());

Это возвращает исключение (неверное исключение формата).

Любая идея решить это?

Принятый ответ

Вы можете использовать int.TryParse вместо Convert.ToInt32

int myInt;
if(!int.TryParse(team.SelectSingleNode(".//td[@class='number total won total_won']")?.InnerText.Trim(), out myInt))
{
  myInt = 0;
}

Я знаю, но у меня есть 30 строк кода, поэтому я должен добавить много, если условия ... - Илнумерону сейчас

Вместо этого вы можете написать вспомогательный метод.

public static class Converter{
    public static int ConvertToInt(string stringAsInt){
      int myInt;
      return int.TryParse(stringAsInt, out myInt) ? myInt : 0;
    }
}

Код вызова.

var parsedInt = Converter.ConvertToInt(team.SelectSingleNode(".//td[@class='number total won total_won']")?.InnerText.Trim());


Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему