问题描述
在UiPath中,从数据表中获取列中所有唯一值的列表或数组的最有效方法是什么?最好不要循环
解决方法
我发现了this post:
-
使用“添加数据列”活动添加数据列
-
提取重复行并将其存储在数据表
中dt1
-
使用以下方法获取不同的值:
dt2 = dt1.DefaultView.ToTable(True)
-
在if条件下为数据表dt的每一行运行
(From p in dt2.Select() where string.Join(",",p.ItemArray).Equals(string.join(",row.ItemArray) Select p).ToList.Count>0
-
然后分配
row("Flag")="flag"
这将标记行。因此,您可以轻松地对其进行调整。主要部分是DefaultView.ToTable
。
另一个想法是简单地使用现有的库,例如this。
,我认为您想要做的是基于单个列实现UiPath filter,如下所示:
yourDT.DefaultView.ToTable(true,"ColumnName")
您可以通过简单地添加额外的列名来扩展它以执行多个列过滤器:
yourDT.DefaultView.ToTable(true,"ColumnName1","ColumnName2"...."ColumnNameN")
效率与简单性
顺便说一下,关于“最有效”的讨论是有争议的。我会说这些是最简单的方法。我敢肯定,有一些天才可以编写自己的代码,以减少默认实现的时钟周期。但是,为了兼顾效率和简便性,这是必经之路。