Если у меня есть цикл, например, как показано ниже:C# петли: перебор массива
foreach (string pass in new string[] { "pass1", "pass2", "pass3" })
{
x = pass; //etc
}
ли анонимный массив строк получить создается один раз на начальном этапе, или воссоздан один раз для каждого прохода?
Я считаю, что первый, но коллеги убеждены, что это ошибка, ожидающая, потому что они говорят, что каждая итерация цикла foreach приводит к созданию нового массива строк.
Код демонтажа VS предполагает, что я прав, но я хочу быть уверенным.
Причина, по которой мы смотрим на это, - попытаться понять загадочную ошибку, сообщающую о том, что коллекция была изменена во время итерации по ней.
Вы можете легко протестировать его, вместо этого добавить значение «DateTime» вместо строк и проверить элементы на каждой итерации. –
Другой способ показать их, что оценивается только один раз, - это выполнить код в режиме отладки. Код, который создает массив строк, будет подсвечиваться только один раз. –
или 'new string [] {" pass1 "," pass "+ i ++," pass3 "}' – Nolonar