Have a try on following:
Variables:
configure the Columnnames which are to check
Assign Activity:
LINQ:
When interrested on dtLeft rows which have a match in dtRight
(From d1 In dtLeft.AsEnumerable
Let arrCHK = arrLCols.Select(Function (x) d1(x)).toArray
Where dtRight.AsEnumerable.Any(Function (d2) arrRCols.Select(Function (y) d2(y)).SequenceEqual(arrCHK))
Select r=d1).CopyToDataTable
When interrested on dtLeft rows which have a NO match in dtRight
(From d1 In dtLeft.AsEnumerable
Let arrCHK = arrLCols.Select(Function (x) d1(x)).toArray
Where NOT dtRight.AsEnumerable.Any(Function (d2) arrRCols.Select(Function (y) d2(y)).SequenceEqual(arrCHK))
Select r=d1).CopyToDataTable
When empty results are to expect, have a look here:
[FirstAid] Handling of The source contains no DataRows exception - News / Tutorials - UiPath Community Forum
Kindly note: the datatable.Select method is something else as the LINQ Operator Select
[HowTo] LINQ (VB.Net) Learning Catalogue - Help / Something Else - UiPath Community Forum