2015-04-16 203 views
-1
string[] scores = File.ReadAllLines(@"text file"); 
string score1 = scores[0]; 

該文本文件包含值1-10但它告訴我索引超出範圍。索引超出數組的範圍

這是爲什麼?

+0

這是一個有效的路徑:'@「文本文件」' – renakre

+2

很簡單,因爲你的分數數組初始化,但是空的,所以你不能因爲它不存在訪問數組的第一個成員。你有沒有確定ReadAllLines在做你認爲的事情? –

+0

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

回答

3

ReadAllLines正在返回一個長度爲0的數組。您的文件路徑不正確或文件沒有您期望的內容。在你索引爲0的行上,如果你試着打印長度爲scores,你會發現它是0.

一般來說,你應該檢查長度或使用foreach或for循環,以便您可以避免這些類型的異常。然而,這就是說,你需要遵循該路徑並確認文件中的內容。請記住,如果在程序運行時使用當前工作目錄的相對路徑可能與您的預期不同。

1

使用這樣的

字符串[] =行File.ReadAllLines( 「C:\ rearrange.txt」); //無論你的文件的名字是和位置

的ReadAllLines不知道確切位置在哪裏從

1

如果它一直告訴你索引超出範圍,這可能是因爲它實際上超出了範圍 - 你的數組長度爲0。你確定文件的內容是你認爲的內容嗎?

您應該仔細閱讀documentation