找回密码
 立即注册
查看: 245|回复: 0

UiPath之DataTable转换为List和Array

[复制链接]
发表于 2022-6-16 17:41 | 显示全部楼层 |阅读模式
今天给大家分享一下,如何将DataTable转为List和Array,为此小U也花了不少时间研究,最后发现没有那么复杂。
先来说说List和Array的区别:
List:就像一个链条,存储数据的空间可以不连续。
Array:就像一个Execl中的某一列,但是它必须在声明的时候就指定存储空间的大小,换句换话就是声明的时候需要初始化数据的大小。
那什么时候用Array,什么时候用List呢?
总结1:当我们不确定大小时,最好使用List代替Array
总结2:当需要大量的查找操作时,最好使用Array,谁用谁知道。
总结3:当需要进行频繁的插入,删除操作时,最好使用List代替Array
最后:由于List需要存储他下一个节点的地址,所以浪费更多的空间
下面小U将给大家讲解一下如何转换,本例中使用的Activity有:
Execl Application Scope
Read Range
Output Data Table
Write Line
Log Message
For Each Row
Invoke Method---转换成List时使用
For Each
Assign---转换成数组时使用
整个流程看起很长,实际的原理很简单,请小伙伴耐心看完
[img][/img]


(一)  我们来看看如何输出DataTable,这个其实很简单,直接新建一个OutputDataTable的activity就可以了
[img][/img]


[img][/img]


由于我的表格里面没有标题行,所以要去掉标题
[img][/img]


[img][/img]


[img][/img]


[img][/img]


看到了吧,就是这么简单,只需要记住他是将整个DataTable里面的内容作为一个字符串输出。
(二)如何将DataTable转换成List呢?
开始这个问题一直都不知道,总想着用ForEachRow读取,然后直接赋值,结果怎么都不行,好在发现了方法,通过Invoke Method中的Add可以实现,注意定义的List的类型是List,并且在Default中需要这样处理new List(of string)
[img][/img]


[img][/img]


---------------------------更新内容-----------------------------
在使用Invoke Method的时候,我们需要进行参数设定,如下图
[img][/img]


漏掉了参数说明,很多同学都卡在这里的,今天把这个追加进去
打印就很简单了,直接使用ForEach,注意不是ForEachRow
[img][/img]


[img][/img]


(三)如何将List转换为数组,这个其实也非常简单
只需要这一步即可,array的类型是String[]
[img][/img]


[img][/img]


最后,我们来看看输出结果
[img][/img]


懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-26 12:31 , Processed in 0.093529 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表