如何设置数组的错误检查?

时间:2011-09-15 06:32:20

标签: c# arrays multidimensional-array

我正在使用HTML敏捷包并解析为数组。

我正在解析的信息发生了变化,当它发生变化低于某个级别时,我得到了未处理的异常,因为我试图绑定一个不存在的元素[] []。

我如何设置错误检查以确定数组是否不在那里它不会抛出未处理的预期?

例如...如果我使用下面的代码并且没有[2] [1]那么我得到一个异常,但是html会发生变化所以它需要应对null dor不存在的数组元素

    //first line
    textBlock1.Text = node[0][0];
    textBlock2.Text = node[0][1];
    textBlock3.Text = node[0][2];

    //first line
    textBlock4.Text = node[1][0];
    textBlock5.Text = node[1][1];
    textBlock6.Text = node[1][2];

    //first line
    textBlock7.Text = node[2][0];
    textBlock8.Text = node[2][1];
    textBlock9.Text = node[2][2];

数组来自此代码:

void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
    var html = e.Result;

    var doc = new HtmlDocument();
    doc.LoadHtml(html);

    var list = doc.DocumentNode.Descendants("div").ToList();

    var node = doc.DocumentNode.Descendants("table")
         .FirstOrDefault(x => x.Id == "departures")
        .Element("tbody")
         .Elements("tr")
          .Select(tr => tr.Elements("td").Select(td => td.InnerText).ToArray())
          .ToArray();

1 个答案:

答案 0 :(得分:1)

您可以检查两个尺寸的长度,例如

if (node.Length > 2)
{
   //first line
   if (node[2].Length > 0)
   {
      textBlock7.Text = node[2][0];
   }
}