【问题标题】:c# add bytes to bytearray?c#将字节添加到bytearray?
【发布时间】:2019-08-07 23:39:54
【问题描述】:

如何将字节添加到字节数组中?

例子-

创建名为 data 的字节数组

public byte[] data;
public int offset;

添加到上面创建的列表

public void add() {
    //what to do here??
    put1(12); // tried this to add int 12 in bytes to array
    // which i assumed would add a byte to the array
}

我将 int 添加为 1 个字节的子方法

    public void put1(int var1)
    {
        this.payload[++this.offset - 1] = (byte)var1;
    }

【问题讨论】:

  • 您的具体错误是什么?您甚至为data 创建了字节数组吗?您说“创建称为数据的字节数组”,但仅显示您声明了字节数组而不是创建它。 ++this.offset - 1 也不必要地复杂,只需执行 this.offset++
  • C# 中的数组不易扩展(您需要创建原始副本的副本并结合您要添加的内容)。您是否考虑过使用 List 可以简单地向其中添加项目?

标签: c# arrays byte


【解决方案1】:

C# 中的数组具有固定长度。您只能在数组较长的位置上设置数组的项。要让“数组”在您向其中添加项目时动态扩展,请使用列表。

例子:

var payload = new List<byte>();
payload.Add(0x00);

要从List 获取Array,您可以调用Linq 扩展payload.ToArray()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-20
    • 1970-01-01
    • 1970-01-01
    • 2013-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多