2011-06-27 65 views
10

我有一個關於DataRows的問題。我有一個DataTable,然後我轉換成DataRow的列表。現在我想要存儲在每個DataRow中的字符串信息。我怎樣才能做到這一點?這是我的代碼:獲取c#中datarow的值

List<DataRow> list = dt.AsEnumerable().ToList(); 
+0

「現在我想要在每個數據行中存儲字符串信息。」這有點令人困惑。你想要連接一個特定列的所有值嗎?也許是'List '或其他一些數據收集?也許你想寫出來的文件? –

回答

4

只需使用索引來訪問每個元素。以下代碼將訪問列表中的第一個元素。

list[0].MyString; 
+1

什麼是mystring? – Ryan

+0

您嘗試訪問的屬性的名稱。 – BentOnCoding

+1

你可以通過列表[0] [「columnname」]或列索引訪問每個單獨的列,如列表[0] [0] – Slider345

6

你能做到這一點,

foreach(var row in list) 
{ 
    var value = row["ColumnName"] as string; 
} 

或該得到 「的ColumnName」 懶洋洋的所有字符串值。

var values = list.Select(row => row["ColumnName"] as string); 

爲什麼要將DataTable轉換爲列表?就是想。

+0

我實際上需要數據行的所有內容作爲列表元素,所以我可以更容易地操作它們 – Ryan

+0

由於數據行將包含對象,因此必須將它們全部轉換爲適當的類型,並使用一些非泛型列表(ArrayList,例如)將DataRow內容移動到數組中。這不一定是最好的辦法,但這取決於你的情況。 –

+0

List <>比DataTable更方便,但是如果你的表格很大,那麼使用'dt'本身可以避免創建一個接近重複的數據結構。畢竟,它可以像List <>一樣進行索引。我說過這個在過去犯過同樣的錯誤,然後遇到龐大的數據集。像這樣創建列表可能會很慢。 :) –

0

您可以按列名或索引檢索它。因此,如果您嘗試檢索的字符串在第一列中,您可以執行列表[rowNum] [0] .ToString()

+0

datarows的箭頭中沒有列.... – Ryan

+0

如果數據表中有數據,它將在列中。嘗試打印列表[0] [0] .ToString(),你應該看到它。 – devsh

1

這應該可以做到。 string t = list[row]["column name"].ToString();

1

你將不得不在DataRow的使用標準索引:

string someValue = 
list[0]["SomeColumn"] as string; 

或者,如果你想與數據從行來的數組工作,

ArrayList lst = new ArrayList(list[INDEX_OF_THE_ROW].Count); 

foreach(object value in list[INDEX_OF_THE_ROW]) 
{ 
    lst.Add(value); 
} 
1
List<DataRow> list = dt.AsEnumerable().ToList(); 
    var mystring = list[0]["ColumnName"].ToString(); 
相關問題