Prepare the target datatable e.g. with a build Datatable - dtResult
Assign Activity
dtResult =
(From d1 In dt1.AsEnumerable
Group Join d2 In dt2.AsEnumerable
On d1("Name").toString.ToUpper.Trim Equals d2("Name").toString.ToUpper.Trim Into gj = Group
From j In gj.DefaultIfEmpty()
Let ra2 = If(isNothing(j), new Object(){nothing, nothing},j.ItemArray.Skip(1).toArray)
Let ra = d1.ItemArray.Concat(ra2).toArray
Select r = dtResult.Rows.Add(ra)).CopyToDataTable
we can dynamize it more, so take it as a starter sample
Never miss out to explore / compare with other options e.g. Join DataTable and also explore hybride options like Join DataTable + LINQ Filtering on the Join Result