保証されないと勘違いしておりました。
JAVAでもあったと思いますが、foreachの配列要素順序は保証されない場合があるという内容です。
誤解ポイントとしては「保証されない場合がある」だと思います。
私はてっきり「そんなあやふやなものは怖い」と思っていたので、順序を守りたい場合はforループを使っていました。
PHPは保証されるという文言があったと思うのでforeachばっかりつかっていましたが・・・。
配列要素がインデックス(数字)の場合は保証されるようです。
Dictionaryやhashmapのように連想配列だと保証されない場合があるようですね。
もうVB.netのプロジェクトは一つのみとなってしまいましたが、使えるところはForeach分を使いたいと思います。