C#里怎么取一个byte[]数组的中间几位?取出之后组成一个新的byte[]数组。

2024-12-20 14:15:02
推荐回答(4个)
回答1:

首先要确定取这个数组的条件,如从第三个开始取三个,或取包含6的,其次要知道新数组的长度确定与否,确定长度可用byte[]不确定可用List队列或Array动态数组,这两方面确定后就可以做了,用循环遍历老数组,对其中的数据元进行判断,达到条件的加入新数组中即可

回答2:

对数组进行循环是最能让人想到,而且也是最不可取的!因为效率太低了!

可以考虑转换为IEnumerable开式,使用lambda表达式去取,虽然表面上没有循环了,但事实上程序转换后还是有循环的存在的,效率没有提高,但开发效率可以提高的。

可以使用StringBuild,将其数据全部装入,然后可以截断指定的byte,这种效率最好。

回答3:

byte[] b = new byte[3];
Array.Copy(a, 2, b, 0, 3); //从a的第二个开始复制到b的第0个,一共复制三个元素

回答4:

我来学习下