【发布时间】:2015-09-11 07:22:05
【问题描述】:
嗨,我想用 10 10 替换 10 字节 []。这是我的代码。 如果我的数据为“10 20 10 20 40 50 50 50 50 10 03”,我想将其替换为 “10 20 10 10 20 40 50 50 50 50 10 10 03” 注意:第一个字节未触及 请关注我的评论,我的想法是将字节数组推到 nxt 位置并添加另一个 10。
foreach (var b in command.ToBytes())
{
// var c = b;
transmitBuffer[count++] = b; data is formed here
addedbuffer[addall++] = b; duplication is made
}
if (addedbuffer[0] == 16 && addedbuffer[1] == 32 || addedbuffer[50] == 16 && addedbuffer[51] == 03) /
{
/condition on which to enter here
addedbuffer[0] = 0; //making 1st and 2nd value as null
addedbuffer[1] = 0;
for (int i = 0; i < addedbuffer.Length; i++) //till length i will chk
{
if (addedbuffer[i] == 10) //replace 10 by 10 10
addedbuffer[i] = 1010; // error,
}
}
【问题讨论】:
-
使用
List<byte>而不是数组并调用List<byte>.Insert()。 -
如何设置位置,因为 10 可能出现在任何地方?
-
按索引遍历列表。只要有 10,就在其后面插入另一个 10(但不要在新插入的后面插入另一个)。
-
对不起,我有点迷路了,你能改变我的代码给我看看吗?
-
添加一个新项目会改变列表的计数,所以你可能想去
for (int index = list.Count; index > 0; index--) { if (list[index] == 10) { list.Insert(index, 10); }}。