如何在int32中转换空字符串?

时间:2017-10-13 14:46:37

标签: c# html-agility-pack

我正在开发从html表中获取数据的软件。所以这一行:

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

返回:""

(我正在使用html agility pack进行DOM操作。)

完整的一行是这样的:

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

这会返回一个异常(格式异常不正确)。

有什么想法解决这个问题吗?

1 个答案:

答案 0 :(得分:3)

您可以使用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多行代码,所以我应该添加很多条件...... - Ilnumerouno刚才

您可以改为编写辅助方法。

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());