Warm tip: This article is reproduced from serverfault.com, please click

linq-如何在将其复制到UIPATH之前检查dt.AsEnumerable是否为Null

(linq - How to check if dt.AsEnumerable is Null before copying it UIPATH)

发布于 2020-12-11 21:00:23

我在用

dt1.AsEnumerable().Where(
    Function(row) Not dt2.AsEnumerable().Select(
        Function(r) r.Field(Of String)("Otsikko")
    ).Any(
        Function(x) x = row.Field(Of String)("Otsikko")
    )
).CopyToDataTable()

直到A列和B列都匹配之前,它才可以正常工作。这导致“ CopyToDataTable()”没有任何要复制的内容并提供错误。

如何添加IF以检查我要复制的项目是否为空。如果它不为空,我希望它复制数据表,如果它是查询,则应向前移动。

我是这一切的新手!因此,任何帮助表示赞赏。

谢谢你提前。

拉里

Questioner
Lari Pyykönen
Viewed
0
Conor 2020-12-12 06:22:57

假设我已经正确理解了这个问题,那么你运行了下面的查询,除了结果为空之外,它可以正常运行。然后,此操作将失败,因为.CopyToDataTable()没有要复制的内容。

dt1.AsEnumerable().Where(
    Function(row) Not dt2.AsEnumerable().Select(
        Function(r) r.Field(Of String)("Otsikko")
    ).Any(
        Function(x) x = row.Field(Of String)("Otsikko")
    )
).CopyToDataTable()

一种解决方案是使用带有以下代码的决策或if语句,如果其中包含数据,则返回true,然后你可以使用上面的代码来提取它,如果返回false,则可以在不进行处理的情况下进行处理。抛出错误

dt1.AsEnumerable().Where(
    Function(row) Not dt2.AsEnumerable().Select(
        Function(r) r.Field(Of String)("Otsikko")
    ).Any(
        Function(x) x = row.Field(Of String)("Otsikko")
    )
).Any()