C# list值传递

请问list是值传递还是地址传递?我做了一个例子,结果是地址传递,怎么让程序值传递?程序中应该输出的结果是nclass[0]=3、nclass[1]=2、nclass[2... 请问list是值传递还是地址传递?我做了一个例子,结果是地址传递,怎么让程序值传递?
程序中应该输出的结果是nclass[0]=3、nclass[1]=2、nclass[2]=1,但是实际情况都按照最后一次赋值时传递。请问应该怎么解决?
ps.请不要告诉我分别写3个temp赋值
展开
 我来答
玩转数据处理
推荐于2016-09-02 · 数据处理,Python,dotnet
玩转数据处理
采纳数:1613 获赞数:3794

向TA提问 私信TA
展开全部

程序不会错,程序错了你就没办法运行,错的是你的代码。数组在C#中是引用传递(也就相当于你说的地址传递)。

你可以这么写的

List<List<int>> nClass = new List<List<int>>();
nClass.Add(new List<int> { 1, 2, 3 });
nClass.Add(new List<int> { 1, 2 });
nClass.Add(new List<int> { 1 });
幸巴达
2015-05-14 · TA获得超过1.2万个赞
知道大有可为答主
回答量:6953
采纳率:38%
帮助的人:2488万
展开全部
LIST<>是一个引用类型的类,不可能值传递的。
真的得需要new多个temp,但new的时候可以copy:

var temp2 = new List<int>(temp);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
甘塩
2017-03-24 · TA获得超过363个赞
知道小有建树答主
回答量:111
采纳率:0%
帮助的人:71.1万
展开全部
把 nClass.Add(temp) 改成 nClass.Add(new List<int>(temp))
拷贝一份进去
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式