asとか適当なことやったら、
今後間違ったコード追加したらエラー発生しないから、間違っていることにすら気づけないじゃん。

ところで、foreachにT[]の配列渡すとT型のitemを回せるけど、
T[].GetEnumrator()するとノンジェネリックのEnumratorが返るのはなぜ?
IEnumrable<T>が明示的宣言されているの?