Input:
Use this Linq query:
out_dt= (From row In dt.AsEnumerable()
Let concatenatedNames = String.Join(", ", {row("name").ToString(), row("name1").ToString(), row("name2").ToString()}.Where(Function(name) Not String.IsNullOrWhiteSpace(name)))
Select dt.Clone().Rows.Add(row("class"), row("subject"), concatenatedNames)).CopyToDataTable().DefaultView.ToTable(False, "class", "subject", "name")
Output:
Regards