UiPath之DataTable转换为List和Array

今天给你们分享一下,如何将DataTable转为List和Array,为此小U也花了很多时间研究,最后发现没有那么复杂。数组

先来讲说List和Array的区别:3d

List:就像一个链条,存储数据的空间能够不连续。blog

Array:就像一个Execl中的某一列,可是它必须在声明的时候就指定存储空间的大小,换句换话就是声明的时候须要初始化数据的大小。字符串

那何时用Array,何时用List呢?string

总结1:当咱们不肯定大小时,最好使用List代替Arrayit

总结2:当须要大量的查找操做时,最好使用Array,谁用谁知道。io

总结3:当须要进行频繁的插入,删除操做时,最好使用List代替Array原理

最后:因为List须要存储他下一个节点的地址,因此浪费更多的空间 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[]

 

 最后,咱们来看看输出结果

 

相关文章
相关标签/搜索