Удаление индекса списка при итерации по списку с использованием вложенных циклов - PullRequest
0 голосов
/ 24 мая 2018

Эй, я пытаюсь выполнить этот бит кода, однако он выходит за границы, я бы предположил, что он пытается выполнить первый цикл с индексом, который был удален.Кто-нибудь знает, как я могу выполнить этот код без его выхода за пределы?

  for (int i = myList1.Count - 1; i >= 0; i--)
    {
        for (int j = 0; j < myList2.Count - 1; j++)
        {
            if (myList2[j] != myList1[i])
            {
                myList1.RemoveAt(i);
            }
        }
    }

1 Ответ

0 голосов
/ 24 мая 2018

Обязательный ответ Linq:

myList1 = myList1.Where(i => !myList2.Contains(i)).ToList();

По сути, вместо того, чтобы циклически проходить по ним обоим самостоятельно, вы используете Linq, чтобы сделать это за вас.Вы устанавливаете myList1 как элементы, соответствующие предложению where в [myList2 не содержит элемент X].

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