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

R048---UiPath中四种筛选数据的方法

[复制链接]
发表于 2022-6-16 20:15 | 显示全部楼层 |阅读模式
一、缘起
用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
识别下面的二维码,可以与作者进行更为深入的交流。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

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

本版积分规则

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

GMT+8, 2024-5-3 10:26 , Processed in 2.347715 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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