如何查找空字节数组

时间:2011-06-30 09:22:39

标签: c# arrays byte

如何找出是字节数组有任何数据还是新创建的字节数组?

var Buffer = new byte[1000];
//How to find out is Buffer is empty or not?

3 个答案:

答案 0 :(得分:7)

我假设'空'表示包含每个字节元素的默认值,如果这不是您的意思,请查看@ sehe的答案。

如何使用LINQ检查所有元素是否都具有类型的默认值:

var Empty = Buffer.All(B => B == default(Byte));

答案 1 :(得分:1)

字节是值类型,不能为null;

创建数组会立即将元素初始化为元素类型的默认值。

这意味着,空单元格不能存在,更不用说被检测到了。

如果你必须:

  1. 使用可空类型

    var Buffer = new byte?[1000];

  2. 在容量发生变化时使用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;
            }