This question already has answers here:
What is an IndexOutOfRangeException / ArgumentOutOfRangeException and how do I fix it?
                                
                                    (4个答案)
                                
                        
                                在4个月前关闭。
            
                    
我收到indexOutOfBounds异常的怪异问题。我需要读取数组中每个字符串的第一个字符。

我在第5行(linesRead [i] [0])遇到异常。对我来说,最奇怪的部分是,当我尝试添加用于调试Console.WriteLine(linesRead [0] [0])/ Console.WriteLine(linesRead [linesRead.lines.Length-1] [0])的行时,它的工作正常。

string[] linesRead = System.IO.File.ReadAllLines(@"test.txt"); //Just a bunch of lines

for (int i = 0; i < linesRead.Length; i++)
{
    if (linesRead[i][0] == '5')
    {
        //Do stuff
    }
}



The text inside of test.txt:
5|f-----g-----c---g-----a---|

6|--c-----------------------|
5|---Aa-f-----g-----c-------|

5|------ccdf-ff-----g-----c-|

6|--------------c-----------|
5|--g-----a------Aa-f-----g-|

5|----c-------------ccdf-f--|

最佳答案

如果一行为空,if (linesRead[i][0] == '5')将触发此错误。

尝试

if (linesRead[i].StartsWith("5"))


代替。

09-27 00:46