【发布时间】:2017-05-29 23:03:56
【问题描述】:
我有两个字节数组 - array1 和 array2 。 我的目标是根据每个数组的起始索引将字节从第一个数组复制到第二个数组,并用特定字节填充未填充的字节。
byte[] array1 = new byte[5]
The data is as follows: 11,22,00,33,44;
byte[] array2 = new byte[10];
我需要将字节从array1 复制到array2。需要从array2中的位置3复制数据,并用值ff填充其余的空位置。 即我在array2中的结果是{ff,ff,ff,11,22,00,33,44,ff,ff}
任何帮助都将不胜感激。
提前致谢!
【问题讨论】:
-
有一个
Array.Copy重载,可让您控制复制操作的开始索引。所以创建一个数组,将所有元素初始化为ff,然后复制到它上面(这将是最简单的代码)。 And here you are :-) -
您在示例中显示了一个小数组,所以我认为效率不是问题。如果是这样,那么下面 Thomas 给出的解决方案就可以了。但是,如果您使用的是非常大的数组并且您需要它尽可能快,那么可以进一步优化将元素设置为零。
-
@MatthewWatson :是的,我正在处理大型数组。您能解释一下如何优化它吗?
-
@Ani_1317 优化只是将数组中不受
Array.Copy()影响的部分设置为0xFF。这只是需要对所涉及的偏移量进行简单计算。