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

C# 从索引数组中删除元素 能否直接赋值修改数组完成元素删减

结论先行

你写的这种写法没有实现「修改原数组删除元素」的效果,在部分编程语言中甚至直接语法报错。

我们以你示例所用的C#语言为例展开说明:

  • 语法层面:在C# 3.0及更高版本中,arr = {"a"};是合法语法,但本质是创建了一个全新的长度为1的数组对象,把原本指向长度为2的数组的引用arr,修改为指向这个新数组。原来的长度为2的旧数组后续会被垃圾回收器自动回收,全程没有对原有数组做任何修改。如果是C、C++、Java或低于3.0版本的C#,这个写法直接编译不通过,数组的花括号初始化简写语法只能在声明变量的同时使用,不能在后续赋值时单独用。
  • 功能实现层面:数组本身是固定长度的结构,原生不支持动态增删元素。如果你需要频繁做元素删除操作,更推荐直接用动态集合类,比如C#中的List<T>:
// 声明集合并初始化
List<string> list = new List<string> {"a", "b"};
// 直接删除指定元素,集合长度自动调整
list.Remove("b");

如果你一定要用数组实现删除效果,只能手动创建新数组、拷贝需要保留的元素,再把原引用指向新数组,和你写的写法本质是一样的。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 23:27:03