Вложенный цикл foreach, модифицирующий внутренний объект, когда он не должен - PullRequest
0 голосов
/ 26 марта 2019

У меня есть 2 цикла foreach, вложенных следующим образом:

foreach (var item in temp)
{
    foreach (var merge in distrolist)
    {
        if(merge.Name.Equals(item.Name) && !merge.Projeid.Equals(item.Projeid))
        {
            item.Amount += merge.Amount;
        }
    }
}

этот код, при выполнении, изменяет количество объекта слияния в distrolist.Я совершенно не понимаю, почему.Теперь интересная часть заключается в том, что измененный объект на самом деле не является текущим объектом слияния в цикле, а не предыдущим объектом в distrolist.Temp и distrolist имеют одинаковый общий тип.Я не уверен, что еще добавить, но если вы хотите увидеть больше деталей, я могу отредактировать вопрос.

...