更改添加的类成员时更改通用列表

时间:2015-10-12 12:46:07

标签: c# list collections

我想在一个类中建模人物数据:

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'作为持久的,后来不可更改的快照。

1 个答案:

答案 0 :(得分:0)

像这样使用:

 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" });