在更改添加的类成员时更改泛型列表

本文关键字:泛型 列表 成员 添加 | 更新日期: 2023-09-27 18:17:12

我想在类中建模个人数据的历史:

public class PersonModel : ViewModelBase
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    ...
}

Person数据在运行时被修改,并定期进行历史记录:

public MainViewModel() {
    List<PersonModel> histItem = new List<PersonModel>();
    PersonModel item = new PersonModel();
    item.FirstName = "Vorname 1";
    histItem.Add(item);
    item.FirstName = "Vorname 2";
    histItem.Add(item);
}

当我改变item时(如在最后第二行),histItem也改变了

histItem[0].FirstName = "Vorname 2";

当我第二次将item添加到histItem时,我有两个重复的列表实体。集合有相同的行为。

我想存储'item'作为一个持久的,以后不可更改的快照。

在更改添加的类成员时更改泛型列表

像这样使用:

 List<PersonModel> histItem = new List<PersonModel>();
 PersonModel item = new PersonModel();
 item.FirstName = "Vorname 1";
 histItem.Add(item);
 item = new PersonModel();
 item.FirstName = "Vorname 2";
 histItem.Add(item);

 histItem.Add(new PersonModel(){FirstName="value 1"});
 histItem.Add(new PersonModel() { FirstName = "value 2" });