Well foreach fetched one by one object among the collection and For loop fetched based on index of object.
Like if you want to apply for loop for the same scenario then
For(int i=0;i<dt.rows.count;i++)
{
DataRow row = dt.rows[i];
}
Where i Plays an important role that on object at which index should be fetched. and while in foreach it grabs one by one object from the collection.
Article provided by thatraja is good but it lacks understanding may
THIS[
^] will help you in better way to understand it.