¿Cómo convertir cadena vacía en int32?

c# html-agility-pack

Pregunta

Estoy desarrollando software que toma datos de una tabla html. Así que esta línea:

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

devuelve: ""

(Estoy usando el paquete de agilidad html para la manipulación de DOM).

Y la línea completa es esta:

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

Esto devuelve una excepción (excepción de formato incorrecto).

¿Alguna idea para resolver esto?

Respuesta aceptada

Puedes usar int.TryParse lugar de Convert.ToInt32

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

Lo sé, pero tengo más de 30 líneas de código, así que debería agregar un montón de condiciones ... "Ilnumerouno ahora mismo

Puedes escribir un método de ayuda en su lugar.

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

Código de llamada.

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



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué