索引超出数组的范围

时间:2015-04-16 21:33:16

标签: c# arrays

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

文本文件包含1-10的值,但它一直告诉我索引超出范围。

这是为什么?

4 个答案:

答案 0 :(得分:3)

ReadAllLines返回一个长度为0的数组。您的文件路径错误或文件没有您期望的文件。如果您尝试打印scores的长度并且您将发现它为0,则在您将其索引为0的行上。

通常,您应该检查长度或使用foreach或以集合长度绑定的循环,以便您可以避免这些类型的异常。但是,话虽如此,您需要遵循该路径并在此处确认文件中的内容。请记住,如果您使用相对路径,程序运行时当前工作目录可能与您预期的不同。

答案 1 :(得分:1)

使用类似的东西

string [] lines = File.ReadAllLines(" C:\ rearrange.txt"); //无论您的文件名是什么,位置

ReadAllLines不知道从

读取数据的确切位置

答案 2 :(得分:1)

您应该阅读有关文件类的更多信息:

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

答案 3 :(得分:1)

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

您应该仔细阅读documentation