复制/设置 Memory<byte> 中的单个字节

我从C# 开始System.Buffers.MemoryPool<T>,System.Memory<T>希望减少字节数组的分配。


我有一堆字节和字节数组,我需要将它们复制到一个单字节数组中(用于仅适用于 的方法byte[],而不是Span/ Memory)。我正在做这样的事情:


byte aByte = 0x01;

byte[] aByteArray = { 0x02, 0x03, 0x04 };

byte[] anotherByteArray = { 0x05, 0x06, 0x07 };


using (var buffer = MemoryPool<byte>.Shared.Rent(7))

{

    Span<byte> target;


    target = buffer.Memory.Slice(0, aByteArray.Length).Span;

    aByteArray.CopyTo(target);


    target = buffer.Memory.Slice(aByteArray.Length, anotherByteArray.Length).Span;

    aByteArray.CopyTo(target);


    // How to copy a single byte?

}

所以,我想出了如何将字节数组复制到缓冲区,但不知道如何设置单个字节。我试过了buffer.Memory.Span[0] = aByte,但Span没有二传手。


慕姐4208626
浏览 47回答 1
1回答

波斯汪

在阅读了@PetSerAl 的评论后,我检查了一下,实际上并没有编译时错误——Visual Studio 中只显示了一个警告。ReSharper 让我在这里发现了可能是一个错误的问题。我应该考虑检查一下,因为 ReSharper 之前已经让我失望了很多次,因为它具有新的 C# 功能,例如Span<T>和Memory<T>:/
打开App,查看更多内容
随时随地看视频慕课网APP