Специальные приложения PowerShell для DataTable. Он не реализует никаких обычных подозрительных интерфейсов, таких как ICollection, IList или IEnumerable, которые обычно запускают разворот. Вы можете немного вникать в это:
PS> $dt = new-object data.datatable
PS> $dt -is [collections.ienumerable]
False
Еще:
PS> $e = [management.automation.languageprimitives]::GetEnumerator($dt)
PS> $e.gettype()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
False False RBTreeEnumerator System.ValueType
-Oisin