Код:
List<Item> Contents = ObjectHandler.player.Contents.ToList<Item>() //Was HashTable
List<int> IDS = new List<int>(); //Holds Item IDs for later counting
foreach (Item I in Contents)
{
IDS.Add(I.ID); // Add ID to IDS
}
List<Item> newContents = Contents;
foreach (Item I in Contents)
{
if (IDS.Contains(I.ID)) //Check if the ID has already been used in Contents
{
newContents.Remove(I); //Remove it
}
}
Contents = newContents;
Этот фрагмент кода должен подготовить список идентификаторов для последующего подсчета, а также удалить дубликаты из списка элементов. Однако, как только элемент присутствует в Contents , я получаю исключение InvalidOperationException . Я совершенно уверен, что я не изменяю содержимое, через которое проходит foreach , таким образом, моя путаница. Может ли кто-нибудь объяснить это мне? спасибо.