今天给大家分享一下,如何将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---转换成数组时使用
整个流程看起很长,实际的原理很简单,请小伙伴耐心看完
![95b6bf9d74655bf2da39860e1b25304c.png](https://img-blog.csdnimg.cn/img_convert/95b6bf9d74655bf2da39860e1b25304c.png)
- 我们来看看如何输出DataTable,这个其实很简单,直接新建一个OutputDataTable的activity就可以了
![c8bdfe9a424f2a274adba07008ffa08e.png](https://img-blog.csdnimg.cn/img_convert/c8bdfe9a424f2a274adba07008ffa08e.png)
![f96b2a20db070c109695b39916de2273.png](https://img-blog.csdnimg.cn/img_convert/f96b2a20db070c109695b39916de2273.png)
由于我的表格里面没有标题行,所以要去掉标题
![9080cdcebffb23fd0b2f1c1b056e92f6.png](https://img-blog.csdnimg.cn/img_convert/9080cdcebffb23fd0b2f1c1b056e92f6.png)
![798708e75865b38462874a8f22f28d4e.png](https://img-blog.csdnimg.cn/img_convert/798708e75865b38462874a8f22f28d4e.png)
![39e867ea6dec2850339863706aa92b71.png](https://img-blog.csdnimg.cn/img_convert/39e867ea6dec2850339863706aa92b71.png)
![96d11a1ac2e651c4aaba3f3f00f671b3.png](https://img-blog.csdnimg.cn/img_convert/96d11a1ac2e651c4aaba3f3f00f671b3.png)
看到了吧,就是这么简单,只需要记住他是将整个DataTable里面的内容作为一个字符串输出。
(二)如何将DataTable转换成List呢?
开始这个问题一直都不知道,总想着用ForEachRow读取,然后直接赋值,结果怎么都不行,好在发现了方法,通过Invoke Method中的Add可以实现,注意定义的List的类型是List<String>,并且在Default中需要这样处理new List(of string)
![7399c985aa91dc585234495fbf31f6bd.png](https://img-blog.csdnimg.cn/img_convert/7399c985aa91dc585234495fbf31f6bd.png)
![47288f31f080034069640a98406ce9db.png](https://img-blog.csdnimg.cn/img_convert/47288f31f080034069640a98406ce9db.png)
打印就很简单了,直接使用ForEach,注意不是ForEachRow
![9002606ac9591f536623049eda3cb684.png](https://img-blog.csdnimg.cn/img_convert/9002606ac9591f536623049eda3cb684.png)
![038cc2838363862f351a29966f7038b1.png](https://img-blog.csdnimg.cn/img_convert/038cc2838363862f351a29966f7038b1.png)
(三)如何将List转换为数组,这个其实也非常简单
只需要这一步即可,array的类型是String[]
![21420c26bfe6b0dfea336dc1a037e000.png](https://img-blog.csdnimg.cn/img_convert/21420c26bfe6b0dfea336dc1a037e000.png)
![a7c1957d18316f83e99d8290d2b7774a.png](https://img-blog.csdnimg.cn/img_convert/a7c1957d18316f83e99d8290d2b7774a.png)
最后,我们来看看输出结果
![0257cd57fadf50d7cd597311617a77e9.png](https://img-blog.csdnimg.cn/img_convert/0257cd57fadf50d7cd597311617a77e9.png)