foreach()
основан на шаблонах ( документы ), фактически он не зависит от IEnumerable
.GetEnumerator()
достаточно.
class A // note: no interface
{
public IEnumerator GetEnumerator() { ...}
}
Linq, с другой стороны, основан на методах расширения для IEnumerable<T>
.
Ваш DataRowCollection
реализует IEnumerable
, но не IEnumerable<DataRow>
.Он слишком стар для Linq.
Но есть несколько вспомогательных методов, myDataRowCollection.AsEnumerable().Select(...)
должен работать.