gpt4 book ai didi

c# - 在 foreach 循环中修改对象的属性不起作用?

转载 作者:太空狗 更新时间:2023-10-29 22:20:28 24 4
gpt4 key购买 nike

这让我很困惑。我正在使用 PetaPoco 从数据库中检索一些值,然后遍历它们并检索一个值以分配给每个对象的一个​​属性。

    public IEnumerable<RetreaveIndex> FillResults(IEnumerable<RetreaveIndex> results)
{
//add the associated users
foreach (RetreaveIndex index in results)
{
index.AssociatedUsers = _registeredUserDao.GetUsersByIndex(index).ToList();
}
return results;
}

当我在 foreach 循环中设置断点时,AssociatedUsers 属性设置正确。 during foreach loop

但是在循环结束的断点处,它没有保存它? enter image description here

我很困惑,Index 不应该是对正在修改的内存中某个位置的引用吗?它毕竟是一个对象。我在这里缺少什么?

最佳答案

  1. 什么是 IEnumerable 实现?它会返回对象的副本吗?

  2. RetreaveIndex 是一个结构,因此是一个值类型吗?如果是,则变量 index 将是一个副本。

关于c# - 在 foreach 循环中修改对象的属性不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6081857/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com