如何在 Uipath 中更有效地从数据表中删除行
How to make the remove of rows from datatable more efficiant in Uipath
您好,我有一个数据表,该数据表由一个文本文件提供,其中包含我已有的文件名。 (DatatableFile)
我还有一个包含所有文件名的数据表。(DatatableValue)
我想从 DatatableValue 中删除 DatatableFile 中存在的文件名,以便进行下一步。
我已经这样做了,但是 太慢了。
而且我发现的所有示例都非常复杂。我认为有一种方法比我发现的更简单,而且比我的更快。
我的解决方案迭代 datatableFile 中的所有结果,datatableValue 中的每一行都变得越来越大。
当有匹配项时,它会获取该行号并将其保存在数组中以供以后处理。
检查完两个表后,它开始清除已有的文件。
这可以使用 LINQ 语句和操作数据表来实现。
首先让我们获取您已有文件的列表,这可以通过分配来完成。
lstStrCurrentFiles
= DatatableFile.AsEnumerable().Select(Function (r) r(0).ToString).ToList()
现在让我们从您拥有的所有文件的数据表中排除那些,这同样可以使用分配来完成。
DatatableValue
= DatatableValue.AsEnumerable.Where(Function (dr) not lstStrCurrentFiles.Contains(dr(1).ToString)).CopyToDataTable
这为您提供了以下序列
您好,我有一个数据表,该数据表由一个文本文件提供,其中包含我已有的文件名。 (DatatableFile)
我还有一个包含所有文件名的数据表。(DatatableValue)
我想从 DatatableValue 中删除 DatatableFile 中存在的文件名,以便进行下一步。
我已经这样做了,但是 太慢了。
而且我发现的所有示例都非常复杂。我认为有一种方法比我发现的更简单,而且比我的更快。
我的解决方案迭代 datatableFile 中的所有结果,datatableValue 中的每一行都变得越来越大。 当有匹配项时,它会获取该行号并将其保存在数组中以供以后处理。
检查完两个表后,它开始清除已有的文件。
这可以使用 LINQ 语句和操作数据表来实现。
首先让我们获取您已有文件的列表,这可以通过分配来完成。
lstStrCurrentFiles
= DatatableFile.AsEnumerable().Select(Function (r) r(0).ToString).ToList()
现在让我们从您拥有的所有文件的数据表中排除那些,这同样可以使用分配来完成。
DatatableValue
= DatatableValue.AsEnumerable.Where(Function (dr) not lstStrCurrentFiles.Contains(dr(1).ToString)).CopyToDataTable
这为您提供了以下序列