2

在 C# 程序中,我从 XML 接收一个值,然后我需要针对一个数组进行测试。如果在数组中找到该值,则返回 true,否则返回 false。这是代码:

 private static bool check(string filename)
 {
 string[] arr = new string[7] {"123", "456", "789", "1012", "1314", "1516", "1781"};

   XmlDocument xml = new XmlDocument();
   xml.Load(filename);


   XmlNode x = xml.SelectSingleNode(@"/abc/def/efg/s");   
    string result = x.InnerText;
    Console.WriteLine(result);
    for (int i=0; i<arr[i].Length ;i++)
    {
        Console.WriteLine(arr[i] + " " + i);
        if (arr[i] == result)
        { return true; }

     }

    return false; 
    }

我遇到了一个例外:

System.IndexOutOfRangeException:索引超出了数组的边界。

现在,如果未找到匹配项,则会出现此异常。如果找到匹配项,则成功返回 true。为什么在返回 false 时会出现异常:这是我从另一个方法调用该方法的方式:

 if (check(FileName))
 {
  // do something
  }

如果找不到匹配项,请告知代码有什么问题。

4

1 回答 1

5

循环条件错误,需要i针对数组的长度进行测试:

i < arr.Length
于 2013-05-17T10:33:01.810 回答