2013-10-05 84 views
0

我有一個包含39行的表的數據集。現在我想將我的ID列值的值存儲在一個單獨的數組中,如string[] ID。 我有定義我陣列是這樣的:使用這條線來存儲在該數組中的值將數據集中每一行的列值存儲到字符串中[]

string[] ids = null; 

和IM:

for (int i = 0; i < mydataset.Tables[0].Rows.Count; i++) 
{ 
ids[i] = mydataset.Tables[0].Rows[i]["id"].ToString(); 
} 

的問題是,id字段值被取出但不被存儲在IDS陣列。它只是拋出一個像Object reference這樣的異常而不是將一個實例設置爲對象的一個​​實例。 但是當我使用調試模式來檢查我的代碼時,我的「id」列值正被提取,但未存儲在ids數組中。 任何人都可以幫忙嗎?我錯過了什麼? 謝謝...

+0

你永遠不會初始化數組? – MichaC

回答

0

你已經聲明瞭數組引用,但實際上並沒有創建數組,你必須初始化它。您需要將數組大小等於或大於預期的元素。

string[] ids = new string[100]; 

你最好使用列表,它的價值閱讀兩者之間的區別解釋here

List<string> ids = new List<string>(); 

for (int i = 0; i < mydataset.Tables[0].Rows.Count; i++) 
{ 
    ids.Add(mydataset.Tables[0].Rows[i]["id"].ToString()); 
} 
0

您聲明瞭該數組,但未初始化它。您可以同時進行聲明和初始化,如下所示;

string[] ids = mydataset.Tables[0].Rows.Cast<DataRow>().Select(r=>r["id"].ToString()).ToArray(); 
相關問題