List赋值的一个问题

「已注销」 2009-02-26 04:26:09
List<string> a = new List<string>();
List<string> b = new List<string>();

a.Add("1");
a.Add("2");

b = a;

b.Remove("1");

问a.Count 和b.Count的值?为什么时这样


...全文
288 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
CutBug 2009-02-26
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 sq_zhuyi 的回复:]
try this: b = new List <string>(a);
[/Quote]
这样就可以了
List<string> a = new List<string>();
List<string> b;
a.Add("1");
a.Add("2");
b = new List<string>(a);
b.Remove("1");
wangping_li 2009-02-26
  • 打赏
  • 举报
回复
a与b是对象赋值,是引用关系
所以操作b就等于操作a
jimu8130 2009-02-26
  • 打赏
  • 举报
回复

堆栈 托管堆

a---------》》》【 List《string》 】


b—————》》》【 List《string》 】

上面是初始化时

堆栈 托管堆

a---------》》》【 “1”,“2” 】


b—————》》》【 List《string》 】

上面是给a添加内容

堆栈 托管堆

a---------》》》【 List《string》 】
|
|
|
b—— 【 List《string》 】

上面是b=a

现在你应该明白了吧?
xiaohe185 2009-02-26
  • 打赏
  • 举报
回复
正解都被楼上的高手们说出了
xiaohe185 2009-02-26
  • 打赏
  • 举报
回复
正解都被楼上的高手们说出了
路人乙e 2009-02-26
  • 打赏
  • 举报
回复
try this: b = new List<string>(a);
無葉 2009-02-26
  • 打赏
  • 举报
回复
值都是 1

這個好象是什麼值類型 和引用類型的
我也不太清楚
cpp2017 2009-02-26
  • 打赏
  • 举报
回复
b = a;
==>将b这个变量指向a对象,然后操作b其实就是操作a
  • 打赏
  • 举报
回复
任何不new的操作,都不会产生自己的内存块,只是地址的赋值而已。

所以a和b都指向堆里的新new的list。所以b的remove操作后,用a来访问这个list,它的item数也只有一个了。
jimu8130 2009-02-26
  • 打赏
  • 举报
回复
推荐楼主仔细品读以下文章,保证你会彻底明白!!!!
http://www.cnblogs.com/anytao/archive/2007/05/23/must_net_08.html
http://www.cnblogs.com/anytao/archive/2007/05/28/must_net_09.html
http://www.cnblogs.com/anytao/archive/2007/06/18/must_net_10.html
http://www.cnblogs.com/anytao/archive/2007/12/03/must_net_18.html
http://www.cnblogs.com/anytao/archive/2007/12/07/must_net_19.html
jimu8130 2009-02-26
  • 打赏
  • 举报
回复
变量只是存储个地址而已
wyforumid 2009-02-26
  • 打赏
  • 举报
回复
a.Count 和b.Count 都是1.

因为a 和 b 都是引用类型,b = a,此时a b 其实指向的是同一内存地址。

故1

  • 打赏
  • 举报
回复
用的 泛型
我不知道 Remove();方法 是做什么的
但是 b=a;之后 b和a b和a的值应该一样了
underwater 2009-02-26
  • 打赏
  • 举报
回复
因为 b = a; 的意思是把 a 的引用地址给 b, 不是把列表内容给 b

分清值类型 引用类型

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧