Итак, в С# я могу рассматривать string[] как IEnumerable<string>.
Есть ли эквивалент Java?
Ответ 1
Iterable<String> является эквивалентом IEnumerable<string>.
Это была бы странность в системе типов, если бы реализованы массивы Iterable. String[] является экземпляром Object[], но Iterable<String> не является Iterable<Object>. Классы и интерфейсы не могут многократно реализовывать один и тот же общий интерфейс с разными родовыми аргументами.
String[] будет работать так же, как Iterable в расширенном цикле.