作者godman362 (青)
看板C_Sharp
标题[问题] List<T> Add Method
时间Thu Apr 8 21:20:20 2010
请教各位先进
目前我要利用link list建一颗huffman tree
我把node都丢在List的datatype中
当我从List中取出两个node後,在new一个node和此两个node link
当我把new出来的node加入List後
想请问一下Add这个行为,他是作Copy的动作,还是Ref的动作?
我这边Copy的意思是说,只有Copy new出来的node进去,link的部份没有处理
还请各位指点一下,谢谢
补一下Code的描述:
假设List里有{node1, node2, node3, node4, node5}
Node newNode = new Node();
newNode.Left = List[0];
newNode.Reght = List[1];
List.Add(newNode);
经过上述处理後,List内容应为{node1, node2, ....., newNode}
我的意思是说,如果我操作以下动作会不会有问题
Console.WriteLine(List[6].Left.Content.ToString());
简单来说,就是我push进去的Node,他如果有指向其他东西
在Add进去後,可否透过List的方式叫出指标所指到物件?
--
ˍˍ
活出自己 ▕吞佛▏
才是此生的快意 ▕童子▏
 ̄ ̄
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.123.105.91
1F:推 F23ko:听不太懂你的问法。但是用ElementAt()叫出东西来时,参照型 04/08 22:07
2F:→ F23ko:别的值会跟着改,但是结构、int那些实质型别不会一起改。 04/08 22:08
※ 编辑: godman362 来自: 140.123.214.123 (04/08 22:40)
3F:推 F23ko:你的方法是可以的。 但是请注意,LIST[6]会读不到东西,因为 04/08 22:56
4F:→ F23ko:索引是从0开始 04/08 22:56
5F:→ godman362:抱歉,是我打错了 04/08 23:10
6F:→ godman362:所以说,new出的Node,他所建立的link是不会有问题的吗 04/08 23:11
7F:→ adrianc:It depends. 实值和参考型别的 assign 行为不同 04/09 02:31
8F:→ adrianc:用你的说法的话 实值型别会Copy 参考型别会Ref 04/09 02:32
9F:→ adrianc:因为你的 Node 显然是参考型别 所以回答你最後的问题 04/09 02:33
10F:→ adrianc:可 04/09 02:33
11F:→ godman362:谢谢两位,这样我明白了 04/09 17:04