首页 > 解决方案 > 在添加到列表之前更新对象

问题描述

在将它们添加到列表之前,我对更新对象有一些问题。例如,当我有一个对象并且我从相同和更新中lst获得另一个对象时,已经添加到列表中的对象也会被更新。看起来他们有相同的地址,但如何?_contextidparam

有人可以解决我的问题吗?

List<Item> lst = new List<Item>();         
                foreach (Item currItemB in itemsB)
                {

                    Item newItem = new Item();
                    newItem = await _context.Item.Where(x => x.id == currItemB.id).FirstOrDefaultAsync();
                    newItem.param = currItemB.param;
      
                    lst.Add(newItem);

                }

标签: c#

解决方案


您实际上并没有创建对象的副本。您只是使用另一个指向同一地址的指针。为了使代码运行,您应该从“项目”创建一个副本。在“Item”类中创建一个克隆函数。请参阅在 C# 中克隆对象的 5 种方法


推荐阅读