R048---UiPath中四种筛选数据的方法
一、缘起用RPA处理数据时,对数据进行筛选,是个基本操作,这里将4种方法逐一罗列,供不同场景下选用。
二、使用方法
方法1:用Filter Data Table,这种方法适合普通业务用户。
拖拽该活动到编辑区,双击该活动,进入该活动内部,再点击Filter Wizard按钮,进入Filter Wizard界面:
在Filter Wizard界面,可以设置筛选行(Filter Rows)或筛选列(Output Columns)。
Input DataTable:需要被筛选的表变量名
Output DataTable:筛选后的数据保存到的某表的biao变量名
Keep:保留符合条件的数据/列,
Remove:删除符合条件的数据/列。
方法2:DataTable.Select()方法,这种方法适合会写点代码的。
这种方法是写代码实现筛选,语法:
表变量名.Select("[列名]='条件值'").CopyToDataTable
其中列名必须用中括号括起来,条件值如果是字符类,必须用英文单引号引起来。
表名.Select的结果可以赋值给另外一个表变量:
表变量名.Select的参数赋值有4种模式,这里使用的是第一种(见上图中的1 of 4),感兴趣的话,其他模式可以自己研究一下,这里不再赘述。
方法3:DataTable扩展方法DataTable.AsEnumerable()
这种方法是写代码实现筛选,语法:
表变量名.AsEnumerable().Where(Function(r)r("字段名").ToString="条件值").CopyToDataTable
默认情况下,此方法返回IEnumerable类型,所以,如果把结果赋值给表,需要使用CopyToDataTable转换。
方法4:LINQ过滤
那些熟悉C#或Visual Basic.NET(VB.NET)的人会喜欢使用此方法。默认情况下,这将返回IEnumerbale,但是正如我之前提到的,它可以转换为DataTable。语法:
(From r In 表变量名.Select() Where r("字段名").Equals("条件值") Select r).CopyToDataTable
这个语法的最后也是把结果转成了表类型,以便赋值给其他表变量,如果是赋值给IEnumerbale类型,就不用转换了。
三、总结
在对数据表使用扩展方法和LINQ时,上面的示例对于基本过滤而言非常简单。但是,您也可以使用此方法编写复杂的查询。在性能方面,这两个要快得多。
您将无法看到100条记录中的任何性能差异,但是如果您有10,000条以上的记录,您会注意到这两种方法的性能都不错。
-End-
觉得有启发,点个“在看”,转给朋友们
附1:关于本公众号
微信公众号名称:柴班说
欢迎转载与分享,也请注明出处。
长按二维码关注,一起在RPA的路上飞
附2:关于本文作者
微信号:chaijw
识别下面的二维码,可以与作者进行更为深入的交流。
页:
[1]