case have a risk of getting OverLINQ-ed (when no grouping is done)
Assign Activity:
dtResult = YourDataTable.Clone
EDITED: 1.1 - Quickfix
Assign Activity
dtResult =
(From d In dtData.AsEnumerable
Group d By k= d("A").toString.Trim Into grp=Group
Let hasBlank = grp.Any(Function (x) isNothing(x("C")) OrElse String.IsNullorEmpty(x("C").toString.Trim))
Let raXtra = grp.First().ItemArray.Take(2).Append("").Concat(grp.First().ItemArray.Skip(3)).Cast(Of Object).toArray
Let raSet = grp.Select(Function (x) x.ItemArray)
Let gset = If(hasBlank, raSet, raSet.Append(raXtra))
From ra In gset
Select r = dtResult.Rows.Add(ra)).CopyToDataTable