foreach (var row in table.Rows)
{
DoSomethingWith(row);
}
Assuming that I\'m working with a standard System.Data.DataTable
(which has
That's because Rows
is DataRowCollection
, which in turn is IEnumerable
and not IEnumerable<DataRow>
, which means that type inferred will be object
.
When you explicitly state type in foreach
, you instruct c# to add cast to each call, which is why it works.
An implicit cast happens. Also note that an InvalidCastException can be thrown if the cast isn't possible.