gpt4 book ai didi

c# - 在 Memory 中复制/设置单个字节

转载 作者:行者123 更新时间:2023-12-04 17:42:03 26 4
gpt4 key购买 nike

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

我有一堆字节和字节数组,我需要将它们复制到单个字节数组(用于仅适用于 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没有二传手。

最佳答案

在阅读了@PetSerAl 的评论后,我检查了一下,实际上并没有编译时错误——只有 Visual Studio 中显示的警告。 ReSharper 让我了解了可能是错误的地方。

我应该考虑检查一下,因为 ReSharper 之前让我失望了很多次,因为它有新的 C# 功能,例如 Span<T>Memory<T> :/

关于c# - 在 Memory<byte> 中复制/设置单个字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54066175/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com