It would be helpful if we could rely on some sample data
In general, we can do it (one of many options with LINQ). It is a match case
Assign Activity
dt3 =
(From d in dt2.AsEnumerable()
Let cv = d(ColNameOrIndex).ToString.Trim
Let chk = dt1.AsEnumerable.Any(function (d1) d1(ColNameOrIndex).ToString.Trim.Equals(cv))
Where chk
Select r = d).CopyToDataTable
Handling empty results: