gpt4 book ai didi

c# - 从 byte[] 中删除尾随零?

转载 作者:行者123 更新时间:2023-11-30 18:50:32 25 4
gpt4 key购买 nike

我正在使用 TCP 协议(protocol)并从套接字读取并将数据写入 byte[] 数组。
这是我的数据示例:

94 39 E5 D9 32 83
D8 5D 4C B1 CB 99
08 00 45 00 00 98
41 9F 40 00 6C 06
9C 46 26 50 48 7D
C0 A8 01 05 03 28

我创建了一个大小为 1024 的 byte[] 数组。现在我使用此方法从中删除空索引:

public void Decode(byte[] packet)
{
byte[] temp;
int c = 0;
foreach(byte x in packet)
if (x != 0)
c++;
temp = new byte[c];
for (int i = 0; i < c; i++)
temp[i] = packet[i];
MessageBox.Show(temp.Length.ToString());
}

但它也删除了 0x00 索引,它可能是有用的数据...
如何删除未用非零数据包裹的 0(尾随 0)?

最佳答案

这是一个非常简短和快速的函数,用于从数组中删除尾随零。

public static byte[] TrimEnd(byte[] array)
{
int lastIndex = Array.FindLastIndex(array, b => b != 0);

Array.Resize(ref array, lastIndex + 1);

return array;
}

关于c# - 从 byte[] 中删除尾随零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11263297/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com