※ 引述《wind681201 (阿風~~)》之銘言:
: 請輸入專案類型(網站專案或者應用程式專案):asp.net
: 想請問大大:我想用datatable 裡面的一個欄位,轉成 string()
: 怎麼做比較快?效能比較好呢?
: 我現在是用迴圈的方式去加,但這樣效能很不好。
: 我的datatable會先用select選出要的datarow,然後我只要裡面其中一個欄位
: 把欄位的值,轉成字串陣列 String() 。
以下是你想要做的事嗎?
測試環境:.NET Framework 4.5.1
Dim st As Date
'方法1 Linq to DataTable
st = Date.Now
Dim ValueList1 As String() = (
From a In dt.AsEnumerable()
Select column2 = a("column2").ToString()
).ToArray()
Response.Write(Date.Now.Subtract(st).Milliseconds & "<br />")
'方法2 填入字串陣列,使用 For 迴圈
st = Date.Now
Dim ValueList2 As String() = New String(dt.Rows.Count - 1) {}
For i As Integer = 0 To dt.Rows.Count - 1
ValueList2(i) = dt.Rows(i)("column2").ToString()
Next
Response.Write(Date.Now.Subtract(st).Milliseconds & "<br />")
'方法3 填入字串陣列,使用 For Each 迴圈
st = Date.Now
Dim ValueList3 As String() = New String(dt.Rows.Count - 1) {}
Dim Index As Integer = 0
For Each Row As DataRow In dt.Rows
ValueList3(Index) = Row("column2").ToString()
Index += 1
Next
Response.Write(Date.Now.Subtract(st).Milliseconds & "<br />")
'方法4 填入 List 泛型,使用 For Each 迴圈
st = Date.Now
Dim StringList As New List(Of String)
For Each Row As DataRow In dt.Rows
StringList.Add(Row("column2").ToString())
Next
Dim ValueList4 As String() = StringList.ToArray()
Response.Write(Date.Now.Subtract(st).Milliseconds & "<br />")