foreach (var row in table.Rows)
{
DoSomethingWith(row);
}
Assuming that I’m working with a standard System.Data.DataTable (which has a collection of System.Data.DataRow objects), the variable ‘row’ above resolves as an object type, not a System.Data.DataRow.
foreach (DataRow row in table.Rows)
{
DoSomethingWith(row);
}
Works as I would expect. Is there a particular reason for this?
Thanks.
That’s because
RowsisDataRowCollection, which in turn isIEnumerableand notIEnumerable<DataRow>, which means that type inferred will beobject.When you explicitly state type in
foreach, you instruct c# to add cast to each call, which is why it works.