foreachするだけじゃなくて要素数が知りたい場合って
大抵ランダムアクセスしたいときだから、ICollection<T>はあんまり意味ない
MSの中の人もICollection<T>は失敗だったと言ってる