На самом деле этот код является избыточным. «Представление» отображает фактическую таблицу данных в нечто с виртуальными свойствами, которые можно использовать для сценариев привязки данных. Представлением по умолчанию является просто макет «все столбцы в указанном порядке, без начальной сортировки и без начального фильтра».
С вашим кодом строка:
string Name = dt.Rows[i]["FirstName"].ToString();
должно быть хорошо.
В качестве отступления - использование for
и индексатор строк могут быть немного убраны:
DataColumn col = dt.Columns["FirstName"];
foreach (DataRow row in dt.Rows)
{
string name = (string)row[col];
//.. do something with name
}
Это проще для чтения и более эффективно (индексатор DataColumn является оптимальным).