Solution 1 provides the simplest way to do this. If, however, you really need to have a single Name field, there is a way to sort it:
dt.AsEnumerable().OrderBy(x => (x.ItemArray[0] as string).Split(' ')[1]).CopyToDataTable();
AsEnumerable
returns an
EnumerableRowCollection<DataRow>
, on which you can call
OrderBy
with a lambda expression that tells to use the second word of the name. This returns an
OrderedEnumerableRowCollection<DataRow>
and you can call
CopyToDataTable
to convert this collection into a new
DataTable
.