You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将ListA赋值给ListB后,调用ListB.Remove会影响ListA吗?

关于C# List引用赋值后修改的问题解答

会的,调用secondList.Remove(someitem)后,allStuffs中的对应项也会被移除。

原因很直白:在C#里,List<T>属于引用类型,变量存储的不是列表的实际数据,而是指向内存中列表对象的地址。当你执行List<string> secondList = allStuffs;这行代码时,只是把allStuffs保存的地址复制给了secondList——换句话说,allStuffs和secondList现在指向的是同一个列表对象。

不管你通过哪个变量调用修改列表的方法(比如Remove、Add、Clear),本质都是在操作内存里的同一个对象,所以所有指向这个对象的变量都会同步看到变化。

举个实际代码例子:

List<string> allStuffs = new List<string> { "苹果", "香蕉", "橙子" };
List<string> secondList = allStuffs;

secondList.Remove("香蕉");

// 此时allStuffs的内容是 ["苹果", "橙子"]
// secondList的内容同样是 ["苹果", "橙子"]

内容的提问来源于stack exchange,提问作者DC37

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 22:45:38