索引超出数组的范围

问题描述:

string[] scores = File.ReadAllLines(@"text file"); 
string score1 = scores[0]; 

该文本文件包含值1-10但它告诉我索引超出范围。索引超出数组的范围

这是为什么?

+0

这是一个有效的路径:'@“文本文件”' – renakre

+2

很简单,因为你的分数数组初始化,但是空的,所以你不能因为它不存在访问数组的第一个成员。你有没有确定ReadAllLines在做你认为的事情? –

+0

@erkaner是的,它是有效的路径 – JhWOLFJh

ReadAllLines正在返回一个长度为0的数组。您的文件路径不正确或文件没有您期望的内容。在你索引为0的行上,如果你试着打印长度为scores,你会发现它是0.

一般来说,你应该检查长度或使用foreach或for循环,以便您可以避免这些类型的异常。然而,这就是说,你需要遵循该路径并确认文件中的内容。请记住,如果在程序运行时使用当前工作目录的相对路径可能与您的预期不同。

使用这样的

字符串[] =行File.ReadAllLines( “C:\ rearrange.txt”); //无论你的文件的名字是和位置

的ReadAllLines不知道确切位置在哪里从

读取的数据,您应该阅读有关文件类:

https://msdn.microsoft.com/en-us/library/system.io.file(v=vs.110).aspx

+0

[您的答案是在另一座城堡:当一个答案不是一个答案(HTTP:/ /meta.stackexchange.com/questions/225370/your-answer-is-in-another-castle-when-is-an-answer-not-an-answer) –

如果它一直告诉你索引超出范围,这可能是因为它实际上超出了范围 - 你的数组长度为0。你确定文件的内容是你认为的内容吗?

您应该仔细阅读documentation