为什么会话变量存储引用不是新对象?

时间:2017-08-30 07:04:21

标签: c# asp.net

我有一个问题,因为我想比较我的两个列表,第一个将被mofidied,第二个将有初始值。

在开始时我创建列表并将其克隆并将其添加到Session。

List<Ranking> ranking = new List<Ranking>();
ranking.Add();//adding items to list
Session["rankingi"] = ranking;
List<Ranking> rankingFromBase = new List<Ranking>(ranking);
Session["rankingFromBase"] = rankingFromBase;

然后我想通过编辑GridView来改变第一个列表。

List<Ranking> rankingCollection = (List<Ranking>)Session["rankingi"];
 var newSimulationRanking = rankingCollection.FirstOrDefault(x => x.id == id);
        if (newSimulationRanking != null)
        {
            rankingCollection.Remove(newSimulationRanking);

            newSimulationRanking.name = name;
            newSimulationRanking.age = age;
            rankingCollection.Add(newSimulationRanking);

        }

在此之后,当我更改第一个列表中的年龄时,我在执行此操作时在第二个列表中收到了相同的更改:

List<Ranking> rankingFromBase = new List<Ranking>();
rankingFromBase = (List<Ranking>)Session["rankingFromBase"];

我需要做些什么来获得一个修改后的列表,第二个带有初始值?

0 个答案:

没有答案