如何检查byte []是否只包含零?

use*_*794 1 .net c# sockets tcp

如何检查byte []是否只包含0?如果它只包含零,我不想通过网络发送数组:

byte[] bytesToBeSend = e.GetAudioSamples;

// Send test data to the remote device.
Send(client, bytesToBeSend);
Run Code Online (Sandbox Code Playgroud)

kev*_*nji 11

在您的Send请求之前插入此测试并使用if测试:

bool hasAllZeroes = bytesToBeSend.All(singleByte => singleByte == 0);

if (hasAllZeroes) {
    Send(client, bytesToBeSend);
}
Run Code Online (Sandbox Code Playgroud)

确保你已经包含LINQ:

using System.Linq;
Run Code Online (Sandbox Code Playgroud)


Dam*_*ith 8

一种选择是检查每个字节等于零,但我们可以检查是否存在非零字节.然后如果真的我们可以发送.这会很快.

if(bytesToBeSend.Any(b => b!=0))
  Send(client, bytesToBeSend);
Run Code Online (Sandbox Code Playgroud)