今天给大家分享一下,如何将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[]

 

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

 

版权声明:本文为mynancy-android原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/mynancy-android/p/11850560.html