嵌套的foreach循环,当不应该修改内部对象时

时间:2019-03-26 17:38:24

标签: c# foreach nested

我有两个嵌套的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;
        }
    }
}

此代码在执行时会修改发行列表中合并对象的数量。我很困惑为什么。现在,有趣的部分是,修改后的对象实际上不是循环中的当前合并对象,而是分发列表中的前一个对象。 Temp和Distrolist具有相同的通用类型。我不确定还需要添加什么,但是如果您想了解更多详细信息,我可以编辑问题。

0 个答案:

没有答案