如何找出是字节数组有任何数据还是新创建的字节数组?
var Buffer = new byte[1000];
//How to find out is Buffer is empty or not?
答案 0 :(得分:7)
我假设'空'表示包含每个字节元素的默认值,如果这不是您的意思,请查看@ sehe的答案。
如何使用LINQ检查所有元素是否都具有类型的默认值:
var Empty = Buffer.All(B => B == default(Byte));
答案 1 :(得分:1)
字节是值类型,不能为null;
创建数组会立即将元素初始化为元素类型的默认值。
这意味着,空单元格不能存在,更不用说被检测到了。
如果你必须:
使用可空类型
var Buffer = new byte?[1000];
在容量发生变化时使用Array.Resize。但是,您很快就会遇到只使用System.Collections.Generic.List会更有效的情况
答案 2 :(得分:0)
除了给出的答案
var buffer = new byte[1000];
var bFree = true;
foreach (var b in buffer)
{
if (b == default(byte)) continue;
bFree = false;
break;
}