>> Your foreach is iterating over the rows collection, and it is pulling out one row object at a time.
That part I get, what I didn't get at first was why I didn't have to cast from a DataRow to my typed row. Then I checked out the IL, and saw this:
IL_001f: castclass NMUG.Business.UsersDataSet/rb_UsersRow
So apparently the compiler is making the cast for me. I didn't know C# did that.
Mike