.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
相关产品推荐
相关产品推荐

