Цикл Foreach, игнорирующий первый объект - PullRequest
0 голосов
/ 12 июня 2018

Я хочу сделать кое-что с объектами, которые идут после того, что я нашел.В целях тестирования я меняю имя.Но результат выглядит так:

  • Удалено
  • OldName
  • 2
  • 3

Первый ((после удаленного) не затрагивается.Кто-нибудь может мне помочь?

int i = 0; //Just for testing
foreach (UserButton rUser in pnContacts.Controls.OfType<UserButton>())
{
    if (rUser.DisplayName == name)
    {
        pnContacts.Controls.Remove(rUser);
        continue;
    }
    i++;
    rUser.DisplayName = i.ToString();
}

1 Ответ

0 голосов
/ 12 июня 2018
  1. Вы не можете удалить элементы из каждого foreach-случая, если ваше pnConacts.Controls - нестатическое поле, и вы пытаетесь использовать его в статическом контексте;
  2. rUser.DisplayName = i.ToString(); изменить имя только в контексте foreach

UPD: в вашем случае лучше использовать простой цикл for, если вам нужно добавить индекс в имени кнопки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...