UiPath之DataTable轉換為List和Array


今天給大家分享一下,如何將DataTable轉為List和Array,為此小U也花了不少時間研究,最后發現沒有那么復雜。

先來說說List和Array的區別:

List:就像一個鏈條,存儲數據的空間可以不連續。

Array:就像一個Execl中的某一列,但是它必須在聲明的時候就指定存儲空間的大小,換句換話就是聲明的時候需要初始化數據的大小。

那什么時候用Array,什么時候用List呢?

總結1:當我們不確定大小時,最好使用List代替Array

總結2:當需要大量的查找操作時,最好使用Array,誰用誰知道。

總結3:當需要進行頻繁的插入,刪除操作時,最好使用List代替Array

最后:由於List需要存儲他下一個節點的地址,所以浪費更多的空間 

下面小U將給大家講解一下如何轉換,本例中使用的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---轉換成List時使用
  8. For Each
  9. Assign---轉換成數組時使用

整個流程看起很長,實際的原理很簡單,請小伙伴耐心看完

                       

(一)  我們來看看如何輸出DataTable,這個其實很簡單,直接新建一個OutputDataTable的activity就可以了

 

 由於我的表格里面沒有標題行,所以要去掉標題

 

看到了吧,就是這么簡單,只需要記住他是將整個DataTable里面的內容作為一個字符串輸出。

(二)如何將DataTable轉換成List呢?

開始這個問題一直都不知道,總想着用ForEachRow讀取,然后直接賦值,結果怎么都不行,好在發現了方法,通過Invoke Method中的Add可以實現,注意定義的List的類型是List<String>,並且在Default中需要這樣處理new List(of string)

 

 

---------------------------更新內容-----------------------------

在使用Invoke Method的時候,我們需要進行參數設定,如下圖

 

漏掉了參數說明,很多同學都卡在這里的,今天把這個追加進去

 

打印就很簡單了,直接使用ForEach,注意不是ForEachRow

 

 

(三)如何將List轉換為數組,這個其實也非常簡單

只需要這一步即可,array的類型是String[]

 

 最后,我們來看看輸出結果

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM