我有静态的十进制列表。
public static List<decimal> E_18_BasCevresi = new List<decimal> { 45.6m, 46.5m, 47.4m, 48.4m, 49.4m, 50.3m, 51.2m };
我将此列表添加到字典中
public Dictionary<string, List<decimal>> BasCevresi { get; set; } = new Dictionary<string, List<decimal>>();
BasCevresi.Add("mylabel", E_18_BasCevresi);
...
BasCevresi["mylabel"].Add(15);//though just adding the list of "mylabel" not origin static list
它可以按预期工作,但是当我在其他任何地方使用静态E_18_BasCevresi
变量时,它包含的值15是否不应该位于我的原始静态列表中?
为什么将此值添加到来源列表?
答案 0 :(得分:2)
列表是一个参考值,当您将列表添加到字典中时,对列表的任何更改都会反映在原始列表中,这就是为什么静态E_18_BasCevresi列表包含值15的原因。 为了解决这个问题,您需要向字典中插入一个列表副本,如下所示:
BasCevresi.Add("mylabel", new List<decimal>(E_18_BasCevresi));