今天給大家分享一下,如何將DataTable轉(zhuǎn)為List和Array亲铡,為此小U也花了不少時(shí)間研究侦副,最后發(fā)現(xiàn)沒有那么復(fù)雜。
先來說說List和Array的區(qū)別:
?List:就像一個(gè)鏈條液兽,存儲(chǔ)數(shù)據(jù)的空間可以不連續(xù)。
?Array:就像一個(gè)Execl中的某一列掌动,但是它必須在聲明的時(shí)候就指定存儲(chǔ)空間的大小四啰,換句換話就是聲明的時(shí)候需要初始化數(shù)據(jù)的大小。
那什么時(shí)候用Array粗恢,什么時(shí)候用List呢柑晒?
總結(jié)1:當(dāng)我們不確定大小時(shí),最好使用List代替Array
?總結(jié)2:當(dāng)需要大量的查找操作時(shí)眷射,最好使用Array敦迄,誰用誰知道。
總結(jié)3:當(dāng)需要進(jìn)行頻繁的插入凭迹,刪除操作時(shí),最好使用List代替Array
最后:由于List需要存儲(chǔ)他下一個(gè)節(jié)點(diǎn)的地址苦囱,所以浪費(fèi)更多的空間
下面小U將給大家講解一下如何轉(zhuǎn)換嗅绸,本例中使用的Activity有:
1.Execl Application Scope
2.Read Range
3.Output Data Table
4.Write Line
5.Log Message
?6.For Each Row
7.Invoke Method---轉(zhuǎn)換成List時(shí)使用
8.For Each
9.Assign---轉(zhuǎn)換成數(shù)組時(shí)使用
整個(gè)流程看起很長,實(shí)際的原理很簡單撕彤,請小伙伴耐心看完
(一) 我們來看看如何輸出DataTable鱼鸠,這個(gè)其實(shí)很簡單猛拴,直接新建一個(gè)OutputDataTable的activity就可以了
由于我的表格里面沒有標(biāo)題行,所以要去掉標(biāo)題
看到了吧蚀狰,就是這么簡單愉昆,只需要記住他是將整個(gè)DataTable里面的內(nèi)容作為一個(gè)字符串輸出。
(二)如何將DataTable轉(zhuǎn)換成List呢麻蹋?開始這個(gè)問題一直都不知道跛溉,總想著用ForEachRow讀取,然后直接賦值扮授,結(jié)果怎么都不行芳室,好在發(fā)現(xiàn)了方法,通過Invoke Method中的Add可以實(shí)現(xiàn)刹勃,注意定義的List的類型是List,并且在Default中需要這樣處理new List(of string)
打印就很簡單了堪侯,直接使用ForEach,注意不是ForEachRow
(三)如何將List轉(zhuǎn)換為數(shù)組荔仁,這個(gè)其實(shí)也非常簡單 只需要這一步即可伍宦,array的類型是String[]
最后,我們來看看輸出結(jié)果