By simply using
Dataset.Tables.Count property
for (int i=0; i< ds.Tables.Count;i++)
{
}
Why don't you want to use foreach, any specific reason?
I would like to recommend to use foreach over for loop unless there is any specific requirement.
Hope, it helps :)