Re: [.NET] 把dataTable 变成 string(0

楼主: fumizuki (蒙面加菲狮)   2016-11-25 23:14:03
※ 引述《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 />")
作者: MOONRAKER (㊣牛鹤鳗毛人)   2016-11-26 11:46:00
现在不用StringBuilder了吗
楼主: fumizuki (蒙面加菲狮)   2016-11-26 12:06:00
因为目标是字串阵列,所以没使用 StringBuilder
作者: wind681201 (阿风~~)   2016-11-26 16:32:00
对,谢谢你,我会用方式一这一个,比较适合我

Links booklink

Contact Us: admin [ a t ] ucptt.com