Compare Two dataTable With Massive Rows

sorry @ppr don’t mean to be a pain but i really did not get that last part. My initial options this (From d1 In dt1.AsEnumerable Join d2 In dt2.AsEnumerable On d1("Perm ID").toString.Trim Equals d2("Perm ID").toString.Trim Let ra = new Object(){d2("Rolename"),d2("Role ID"),d2("Perm ID"),d2("Perm Desc"),d2("Perm Val"),d1("Scope")} Select dt3.Rows.Add(ra)).CopyToDataTable allows me to get dt3 which is the datatable where the rows from dt1 and dt2 with the same Perm ID are all in one.
I would like to get the opposite as well. So the remaining datatable where the Perm ID from dt1 and dt2 are not the same. Your last comment was a little bit confusion. I get these parts

for d1
D1keys as list<String> = dt1.AsEnumerable.Select(function ( r ) r(“Perm ID”).toString.trim).distinct().to list

Similar for d2
CommonKeys aß list<String> = D1keys.intersect(D2Keys).ToList

NoCommonD1Keys aß list<String> = D1Keys.Except(CommonKeys).toList
Buit the last piece is confusion g as i am not sure on which datatable to filter as you mentioned.

I tried filtering on a join of dt1 nd dt2 but i do not get the expected result. Please assist. Thanks