将虚假数据添加到列表

所以我尝试创建一个虚假的物品清单

var items = new List<Item>();

var item = new Item 
{
    Name = "A";
} 

for(int i=0; i<3; i++)
{
    items.Add(item);
}

item.Name = "B";

for(int i = 0; i<2; i++)
{
    items.Add(item);
}

我希望它会返回一个包含3个项目名称A和2个项目名称B的列表,但是它返回5个项目名称B。我在哪里错了?

评论
  • 笑微笑
    笑微笑 回复
    var items = new List<Item>();
    
    
    
    for(int i=0; i<3; i++)
    {
        var item = new Item() 
        {
            Name = "A";
        } 
        items.Add(item);
    }
    
    
    
    for(int i = 0; i<2; i++)
    {     
        var item = new Item() 
        {
            Name = "B";
        } 
        items.Add(item);
    }
    
  • et_qui
    et_qui 回复
    var item = new Item() 
    {
        Name = "A";
    }  
    

    创建一个对象。对象具有引用语义,即,如果您更改名称,则所有引用将看到相同的名称。 您必须将新对象添加到列表,例如在循环中创建一个新项目。