CType 函數(shù)
創(chuàng)新互聯(lián)建站網(wǎng)站建設(shè)服務(wù)商,為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作服務(wù),網(wǎng)站設(shè)計(jì),網(wǎng)站托管維護(hù)等一站式綜合服務(wù)型公司,專業(yè)打造企業(yè)形象網(wǎng)站,讓您在眾多競爭對(duì)手中脫穎而出創(chuàng)新互聯(lián)建站。
任何數(shù)據(jù)類型
必須在兩種數(shù)據(jù)類型之間定義擴(kuò)大轉(zhuǎn)換或收縮轉(zhuǎn)換
引發(fā) InvalidCastException
DirectCast
任何數(shù)據(jù)類型
一個(gè)類型必須繼承自或者實(shí)現(xiàn)另一個(gè)類型
引發(fā) InvalidCastException
TryCast
僅引用類型
一個(gè)類型必須繼承或者實(shí)現(xiàn)另一個(gè)類型
返回 Nothing (Visual Basic)
返回表達(dá)式顯式地轉(zhuǎn)換為指定數(shù)據(jù)類型、對(duì)象、結(jié)構(gòu)、類或接口后的結(jié)果。
CType(expression, typename)各部分說明expression任何有效的表達(dá)式。如果 expression 的值超出了 typename 所允許的范圍,將會(huì)出現(xiàn)錯(cuò)誤。
typename任何在 Dim 語句的 AS 子句內(nèi)合法的表達(dá)式,即任何數(shù)據(jù)類型、對(duì)象、結(jié)構(gòu)、類或接口的名稱。
備注CType 采用內(nèi)聯(lián)方式編譯,即轉(zhuǎn)換代碼是計(jì)算表達(dá)式的代碼的一部分。因?yàn)椴恍枰{(diào)用完成轉(zhuǎn)換的過程,因此執(zhí)行速度更快。
示例本示例使用 CType 函數(shù)將表達(dá)式轉(zhuǎn)換為指定的數(shù)據(jù)類型。
1、字節(jié)數(shù)組轉(zhuǎn)換為字符串
byte[] byBuffer = new byte[20];
String strRead = new String(byBuffer);
strRead = String.copyValueOf(strRead.toCharArray(), 0, byBuffer.length]);
2、字符串轉(zhuǎn)換成字節(jié)數(shù)組
byte[] byBuffer = new byte[200];
String strInput=abcdefg;
byBuffer= strInput.getBytes();
注意:如果字符串里面含有中文,要特別注意,在android系統(tǒng)下,默認(rèn)是UTF8編碼,一個(gè)中文字符相當(dāng)于3個(gè)字節(jié),只有g(shù)b2312下一個(gè)中文相當(dāng)于2字節(jié)。這種情況下可采取以下辦法:
Private?Sub?Form1_Load(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?MyBase.Load
DataGridView1.Columns.Clear()
DataGridView1.DataSource?=?GetDateTable("1|2|3,張三|李四|王五,1111111|2222222|3333333",?"編號(hào)|姓名|卡號(hào)")
End?Sub
Function?GetDateTable(ByVal?s?As?String,?ByVal?TabNames?As?String)?As?DataTable
Dim?tb?As?New?DataTable
Dim?ss()?As?String?=?s.Split(",")
Dim?tc()?As?String?=?TabNames.Split("|")
Dim?c?As?Integer
For?Each?i?As?String?In?ss
Dim?ts()?As?String?=?i.Split("|")
Dim?dc?As?DataColumn
If?c??tc.Length?Then
dc?=?New?DataColumn(tc(c))
Else
dc?=?New?DataColumn
End?If
tb.Columns.Add(dc)
For?j?As?Integer?=?0?To?ts.Length?-?1
If?j??tb.Rows.Count?-?1?Then
tb.Rows.Add(tb.NewRow)
End?If
tb.Rows(j)(dc)?=?ts(j)
Next
c?+=?1
Next
Return?tb
End?Function
可以把簡單的思路跟你說一下
datatable轉(zhuǎn)成arraylist的話
首先得明確你的datatable中有幾列數(shù)據(jù)。如果按照通常的類似數(shù)據(jù)庫數(shù)據(jù)的結(jié)構(gòu)的數(shù)據(jù)的話,應(yīng)該是要把datatable轉(zhuǎn)成一個(gè)二維的arraylist。(如果是只有一列的datatable就可以省一步)
先實(shí)例化裝最后結(jié)果的arraylist(arr1),接著實(shí)例化一個(gè)datarow(dt1),
把datatable里的每一行的數(shù)據(jù)
賦值到datatrow(dt1)中,之后創(chuàng)建一個(gè)arraylist(arr2),把datarow(dt1)中的數(shù)據(jù)遍歷到這個(gè)arraylist(arr2)中,之后把a(bǔ)rraylist(arr2)做為一個(gè)元素add進(jìn)arraylist(arr1),也就是形成一個(gè)二維的arraylist。
arraylist轉(zhuǎn)成datatable的話
同樣是以二維arraylist為例,先遍歷第一層arraylist,實(shí)例化一個(gè)datarow(dt1),之后遍歷第二層arraylist,把第二層的數(shù)據(jù)賦值到dt1中,之后
把dt1添加到datatable中,即可。
只是說了一個(gè)大概的思路,希望對(duì)你有幫助!