如何从字节数组中删除空值?

时间:2010-08-12 10:04:04

标签: c# bytearray buffer null

由于某种原因,BeginReceive的字节数组输出填充空值然后填充数据。

BeginReceive:

AsyncResult = connectSocket.BeginReceive(RecvBuffer2,
                                          0, RecvBuffer2.Length,
                                          SocketFlags.None,
                                          OnDataRecvCallback, null);

字节数组声明:

public static byte[] RecvBuffer2 = new byte[9999];

如何删除空值并保留其余数据?

2 个答案:

答案 0 :(得分:3)

应该可以使用LINQ。未经测试,因为我现在没有Visual Studio,但它应该是这样的:

var usefulBuffer = RecvBuffer2.SkipWhile(x => x == 0).ToArray()

答案 1 :(得分:0)

我们可以修改Heinzi的答案

  RecvBuffer2= RecvBuffer2.Where(x => x != 0).ToArray();

现在没有必要反转数组。

解决方案的关键是c#谓词。