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

.NET C#中如何定义指定长度的字节数组数组?

如何声明长度不确定的字节数组的数组

在C#中,你尝试的byte[][12]语法是错误的,因为**字节数组的数组(交错数组)**的每个子数组长度可以独立设置,不能在声明时统一指定子数组的固定长度。根据你不清楚单个字节数组具体长度的需求,有两种常用的实现方式:

方式一:先声明外层数组长度,后续初始化子数组

如果你已经确定外层数组的元素个数,但每个子数组的长度还不确定,可以先创建外层数组,再逐个为子数组分配长度:

// 声明一个包含5个元素的字节数组的数组,每个元素暂时为null
var bytesArray = new byte[5][];

// 后续为每个子数组单独设置长度(长度可以不同)
bytesArray[0] = new byte[12]; // 第一个子数组长度12
bytesArray[1] = new byte[20]; // 第二个子数组长度20
bytesArray[2] = new byte[5];  // 第三个子数组长度5
// 剩下的元素可以后续按需初始化

方式二:用List动态管理(更灵活)

如果连外层数组的长度也不确定,推荐使用List<byte[]>来动态添加子数组,需要时再转换为数组:

// 创建一个可动态添加的字节数组集合
var byteList = new List<byte[]>();

// 按需添加不同长度的字节数组
byteList.Add(new byte[12]);
byteList.Add(new byte[30]);
byteList.Add(new byte[8]);

// 转换为字节数组的数组(如果需要)
byte[][] bytesArray = byteList.ToArray();

补充:区分交错数组和二维数组

如果你误把交错数组当成了二维数组,二维数组的声明方式是byte[,] array = new byte[5,12];,但它的行列长度是固定的,所有子数组长度必须一致,不符合你“单个字节数组长度不确定”的需求,所以不适用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 23:45:28