由于某种原因,BeginReceive的字节数组输出填充空值然后填充数据。
BeginReceive:
AsyncResult = connectSocket.BeginReceive(RecvBuffer2,
0, RecvBuffer2.Length,
SocketFlags.None,
OnDataRecvCallback, null);
字节数组声明:
public static byte[] RecvBuffer2 = new byte[9999];
如何删除空值并保留其余数据?
答案 0 :(得分:3)
应该可以使用LINQ。未经测试,因为我现在没有Visual Studio,但它应该是这样的:
var usefulBuffer = RecvBuffer2.SkipWhile(x => x == 0).ToArray()
答案 1 :(得分:0)
我们可以修改Heinzi的答案
RecvBuffer2= RecvBuffer2.Where(x => x != 0).ToArray();
现在没有必要反转数组。
解决方案的关键是c#谓词。