Comment convertir une chaîne vide en int32?

c# html-agility-pack

Question

Je développe un logiciel qui récupère les données d'une table HTML. Donc cette ligne:

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

renvoie: ""

(J'utilise le pack d'agilité HTML pour la manipulation du DOM.)

Et la ligne complète est la suivante:

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

Cela renvoie une exception (exception de format incorrect).

Une idée pour résoudre ça?

Réponse acceptée

Vous pouvez utiliser int.TryParse au lieu de Convert.ToInt32

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

Je sais, mais j'ai plus de 30 lignes de code, alors je devrais ajouter beaucoup de conditions si ... - Ilnumerouno tout à l'heure

Vous pouvez écrire une méthode d'assistance à la place.

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

Code d'appel.

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



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi