
3.2.7 Array
数组(Array)类型,用于在程序中存储同一类型的多个值。Array中元素的个数在初始化时就已经固定了,后续使用时不能再增加和删除。当程序中需要保存同一系列的一串数据时,都可用Array类型,例如员工工资的各个组成部分、商品的各个部件等。
UiPath支持的Array类型和变量类型一样多,可以创建整数类型数组、字符串类型数组、布尔值类型数组等,其中数组的类型指的就是数组中元素的类型。但无论是什么类型,Array的值必须放在一对英文大括号中间,且每个值之间用逗号隔开,如{21,10,35}、{"张三","男","40"}等。
在需要取得Array中某个元素的值或为某个元素赋值时,可以使用下标来实现,具体表现形式为Array(Index)。Array的下标是从0开始计算的,也就是说数组中的第一个元素表示为Array(0)。如Array型变量EmpInfo的值为{"张三","男","40"},该数组的第一个元素EmpInfo(0)的值为"张三",第二个元素EmpInfo(1)的值为"男",第三个元素EmpInfo(2)的值为"40"。
Array的长度指的是Array中元素的个数,可以使用Array.Length获取,表示数组中有多少个相同类型的数据,如{1,2,3,4}.Length的结果为4。
Array型变量在Variables面板中的显示如图3-109所示。

图3-109 Array型变量示例
UiPath同样支持二维数组,即数组中的每个元素的数据类型还是Array类型,它的使用规范与一维数组十分相似,只是二维数组中的每个数组元素需要使用英文小括号括起来。例如:二维数组变量ClassSize存储了某中学三个年级各班级人数,它的值为{({32,31,35}),({32,37,34}),({36,39,38})},其中一年一班的人数ClassSize(0)(0)为32,一年二班的人数ClassSize(0)(1)为31,一年三班的人数ClassSize(0)(2)为35,二年一班的人数ClassSize(1)(0)为32,以此类推。
二维数组在Variables面板中的显示如图3-110所示。
Array型变量的具体创建与使用方法如例3.12所示。

图3-110 二维数组示例
【例3.12】使用Array变量完成打印员工信息的流程。员工信息由三部分组成,第一部分为姓名,第二部分为性别,第三部分为年龄。已知一名员工姓名为张鑫,性别为男,年龄为40,请将该信息存入Array变量中,并在Output面板输出数组中的信息。流程图如图3-111所示。
具体实现步骤如下所示。
1)进入Studio界面,点击Process创建一个新流程,命名为3_12_Array,如图3-112所示。

图3-111 流程图

图3-112 新建流程
2)拖入一个Sequence活动到设计器面板。在Properties面板中,将Sequence活动的DisplayName属性更改为“打印员工信息”,如图3-113所示。

图3-113 拖入Sequence活动并更改属性
3)在Variables面板中创建String型变量EmpName(默认值为张鑫)、EmpSex(默认值为男)及EmpAge(默认值为40),用于存储员工姓名、员工性别和员工年龄,如图3-114所示。注意这里使用一个String型变量来存储年龄,这样以后将它添加到String型数组变量时,就不必转换它了。
4)在Variables面板中创建Array型变量EmpInfo,用于存储员工信息。第一次使用时需要在Variable type下拉列表中选择Array of [T],如图3-115所示。

图3-114 创建变量

图3-115 更改变量数据类型为数组
5)系统随即会显示Select Types对话框,在下拉列表中选择String后点击OK按钮,如图3-116所示。

图3-116 设置数组中元素数据类型
6)此时Variables面板中变量EmpInfo的数据类型被更改为String型的数组,如图3-117所示。

图3-117 更改变量数据类型后的Variables面板
7)拖入一个Assign活动到“打印员工信息”活动中。在Properties面板中,将DisplayName属性更改为“将员工信息存入数组”,在To属性中输入变量EmpInfo,在Value属性中输入“{EmpName,EmpSex,EmpAge}”,如图3-118所示。

图3-118 将员工信息存入数组
8)拖入一个Write Line活动到“打印员工信息”活动中。在Properties面板中,将DisplayName属性更改为“输出数组中的员工信息”,将Text属性更改为EmpInfo(0)+","+EmpInfo(1)+","+EmpInfo(2),如图3-119所示。

图3-119 输出数组中的员工信息
9)按F5键执行流程,将在Output面板中显示执行结果,如图3-120所示。

图3-120 执行结果