На всех языках, которые я знаю, foreach
требует, чтобы коллекция, через которую он итерируется, не менялась во время итерации.
Итак, простой ответ будет - нет, вы не можете.Но способ, которым вы делаете это в своем образце, в порядке.
edit : Что вы можете сделать, это создать новый список элементов, которые необходимо удалить внутри foreach (изitemList), а затем пройти через другой foreach (удаленных элементов) и удалить из itemList.Единственное, о чем нужно беспокоиться, это то, что вы не перебираете коллекцию, которую вы меняете.