I changed it to run with one million names and ran with the optimized foreach. I only did one pass.
foreach 00:00:01.7348710
linq 00:00:01.8607973
Yeah, I got that feeling too, when time measurements are in the microsecond range. I wonder how CPU cache and memory access patterns affect the results.