Как удалить нули из байтового массива? - PullRequest
2 голосов
/ 12 августа 2010

По какой-то причине вывод байтового массива BeginReceive заполняется нулями, а затем данными.

BeginReceive:

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

Объявление массива байтов:

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

Как убрать нули и сохранить остальные данные?

Ответы [ 2 ]

3 голосов
/ 12 августа 2010

Должно быть выполнимо с LINQ.Не проверено, поскольку у меня нет доступной Visual Studio прямо сейчас, но она должна выглядеть примерно так:

var usefulBuffer = RecvBuffer2.SkipWhile(x => x == 0).ToArray()
0 голосов
/ 17 января 2018

Мы можем изменить ответ Хайнци на

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

Теперь нет необходимости переворачивать массив.

Ключом к решению является предикат c #.

...