Well, I will say it is not as obvious as Database.LogFiles hanging off the database object straight-away but when you think about it in terms of how SQL Server organizes data files into groups it makes more sense.
I think you'll want code like this:
for each $fileGroup in Database.FileGroups
---- for each $dataFile in $fileGroup.Files
---- ---- do work
There are no special teachers of virtue, because virtue is taught by the whole community.
--Plato