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

如何不使用内置函数Resize()向C#数组中添加新元素?

不借助Array.Resize()向C#数组添加新元素的实现方法

当然可以实现。C#中的数组是固定长度的,无法直接在原数组上扩容添加元素——包括Array.Resize()本质上也是创建新数组、复制原元素、更新引用的过程。我们完全可以手动复刻这个逻辑,不依赖Array.Resize()。

方法一:手动循环复制元素

直接创建一个长度+1的新数组,用循环把原数组的元素逐个复制过去,再添加新元素:

string[] data = {"item-1", "item-2"};
// 创建长度比原数组多1的新数组
string[] newData = new string[data.Length + 1];
// 手动复制原数组所有元素
for (int i = 0; i < data.Length; i++)
{
    newData[i] = data[i];
}
// 添加新元素到新数组末尾
newData[newData.Length - 1] = "item-3";
// 将原数组引用指向新数组
data = newData;

foreach(string i in data) {
  Console.WriteLine(i);
}

方法二:使用Array.Copy()简化复制

如果允许使用Array.Copy()(它只是复制元素的工具方法,不是扩容专用的Array.Resize()),可以替代循环,让代码更简洁:

string[] data = {"item-1", "item-2"};
string[] newData = new string[data.Length + 1];
// 复制原数组所有元素到新数组的起始位置
Array.Copy(data, newData, data.Length);
// 添加新元素
newData[2] = "item-3";
data = newData;

foreach(string i in data) {
  Console.WriteLine(i);
}

两种方法最终效果和原代码完全一致,都会输出:

item-1
item-2
item-3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 06:46:07