使用Array进行XML值测试

use*_*720 2 .net c# xml arrays

在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; 
    }
Run Code Online (Sandbox Code Playgroud)

我得到一个例外:

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

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

 if (check(FileName))
 {
  // do something
  }
Run Code Online (Sandbox Code Playgroud)

如果找不到匹配,请告知代码是否有错误.

nma*_*mat 5

循环条件错误,您需要测试i数组的长度:

i < arr.Length
Run Code Online (Sandbox Code Playgroud)