Является ли создание массива в каждом цикле foreach?

Я нахожу себя в этом:

string states = "this,that,theother"; foreach(string state in states.Split(',')) { } 

И мне любопытно; Разделяется ли строка states в каждом цикле foreach?

Этот пример находится в c #, но другие языки программирования ведут себя по-другому ?

Разделяются ли PHP и JavaScript на каждом цикле foreach?

С точки зрения .NET:

Нет, state.Split() происходит один раз.

Другие языки?? Я понятия не имею, что вы имеете в виду. Вы должны пересмотреть свой вопрос как php или javascript хотя я вполне уверен, что javascript будет вести себя одинаково.