Rie*_*S13 1 c# dictionary parameter-passing
我的标题问题与这个问题完全相同
然而,这不回答我的问题.
static void Main() {
Dictionary<string,int> d=new Dictionary<string,int>();
d["asu"]=1;
d["babi"]=1;
c(d);
Console.Write(d["asu"]);
//output=0
}
static void c(Dictionary<string,int> d){
d["asu"]--;
}
Run Code Online (Sandbox Code Playgroud)
上面的代码减少了d变量里面的Main方法的值,当它应该只减少c()方法内的值而不应该减少内部Main方法.如何保持Dictionaryin Main方法使值不会因传递参数而减少.
Dictionary是一种参考类型.传递数据时,您不会复制数据.您只是将引用传递给同一个底层对象.
如果要修改副本,则需要明确制作副本; 尝试:
var copy = d.ToDictionary(t=>t.Key, t=>t.Value);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
68 次 |
| 最近记录: |