Based on your responses to the other comments and solutions I think this might do what you need ...
My "sample data":
DataSet ds = new DataSet();
ds.Tables.Add("aTable");
ds.Tables.Add("cTable");
ds.Tables.Add("bTable");
I use
CopyTo
to get the tables within the dataset into an array - on which I can
then use Linq
DataTable[] dta = new DataTable[ds.Tables.Count];
ds.Tables.CopyTo(dta, 0);
Here's the actual sort
foreach (DataTable t in dta.OrderBy(c => c.TableName))
Console.WriteLine(t.TableName);
which gives me the output
aTable
bTable
cTable
as expected
Edit - Forgot to mention to ensure you have included
using System.Linq;