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
}
一致が見つからない場合は、コードの問題点を教えてください。