列表清除后如何保留我的 class

how can I preserve my class after list clear

我有2个类

public class Product
{
    public DateTime Date { get; set; }
    public string Name { get; set; }
    public int Amount { get; set; }
}

public class Campaign
{
    public long CampaignId { get; set; }
    public string CampaignName { get; set; }            
    public List<Product> Products { get; set; }
}

代码:

var campaign = new Campaign();
campaign.CampaignId = Item.CampaignId;
campaign.CampaignId = Item.CampaignId;
campaign.CampaignName = Item.CampaignName;                    
campaign.Products = productList;

campaignList.Add(campaign);
productList.Clear();

当我调用 productList.Clear() 时,我的“活动”删除了它的 campaign.Products

我怎样才能防止这种情况发生?

campaign.Products = new List<Product>(productList);

因为 campaign.Products 与 productList
的引用相同 他们都指向同一个列表,对一个的任何操作都会反映在另一个 varialbe
您需要通过以下不同方式克隆(制作列表的另一个副本)

campaign.Products = productList.GetClone();

campaign.Products = productList.ToList();  

campaign.Products.AddRange(productList);

检查以下内容url

https://www.techiedelight.com/clone-list-in-csharp/