我想初始化一個數組 - 我不知道它有多大。然後將其設置在一個條件在if語句中設置變量,然後告訴它未分配
所以我有:
string[] my_string;
if(x==2)
{
my_string=File.ReadAllLines("file.txt");
}
string new_string=my_string[1];
它告訴我,我已經一個未分配的局部變量,因爲它是在狀態。我如何解決這個問題?
我想初始化一個數組 - 我不知道它有多大。然後將其設置在一個條件在if語句中設置變量,然後告訴它未分配
所以我有:
string[] my_string;
if(x==2)
{
my_string=File.ReadAllLines("file.txt");
}
string new_string=my_string[1];
它告訴我,我已經一個未分配的局部變量,因爲它是在狀態。我如何解決這個問題?
爲什麼不創建一個列表,而不是再利用File.ReadAllLines(「file.txt的」) 也包括你一起file.txt的 這裏是一個免費的代碼片段供您使用的文件路徑我用這個了很多,當我想一個文本文件加載到一個列表作爲一個批量加載...
List<string> lstLinesFromFile = new List<string>(File.ReadAllLines(yourFilePath+ "file.txt"));
從那裏你可以在調試器中查看或快速監視添加到lstLinesFromFile和看到所有已加載文本。從那裏的每一行都將被訪問鏈接序號,因此使用for循環或foreach循環
如果x
不是2
,您需要確保它有一個值。
此刻,如果x不等於2,那麼你的數組中沒有任何值,但是仍然調用該數組。你可以做的一件事是將new_string
assingment移動到if statement
之內。當然,如果您有其他值得您檢查的x
,這可能不是最好的方法。如果是這樣,Switch..Case
可能會更好。
string[] my_string;
//set new_string to be empty for now
string new_string = String.Empty;
if(x==2)
{
my_string=File.ReadAllLines("file.txt");
//Make sure there are at least two elements
if(my_string.Length >= 2)
//Get the second element of the array (remember, 0 is the first element)
new_string = my_string[1];
}
如果'x == 3',你期望'my_string [1]'是什麼? – SLaks 2011-12-22 18:02:27
沒錯。我想我只需要將所有其他代碼放在條件中。 – marseilles84 2011-12-22 18:14:03