c# - 如何从 ReadOnlySpan<T> 复制到 Array<T>?

标签 c# .net

我的类(class)有一个属性 public byte[] Location{get;} = new byte[30];我希望能够从 ReadOnlySpan<byte> 填充它但我找不到任何允许这样做的 API 方法。
我找到的最接近的是:

var array = span.Slice(0,30).ToArray();
Array.Copy(array, Locations, 30);
但是必须创建一个新数组来复制它似乎真的很难看……涉及一个数组创建和 2 个副本。我可以使属性可设置,但这并不是真正的预期设计。
我错过了一些明显的方法吗?

最佳答案

您可以使用 Span<byte>定位您的 Location数组,然后使用 CopyTo对于副本:

var source = new ReadOnlySpan<byte>(Source).Slice(0, 30);
var target = new Span<byte>(Location, 0, 30); //Modify start & length as required

source.CopyTo(target);

关于c# - 如何从 ReadOnlySpan<T> 复制到 Array<T>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62881863/

相关文章:

c# - 如何使用python .Net与ZeroMQ或其他将Python包公开给C#

c# - Xamarin 分步向导 android View

C# - 动态更改 RichTextBox 中的文本字体?

c# - 异常处理——这是好的做法吗?

c# - 如何在 C# 中使用正则表达式获取某个特定单词之前的数字?

c# - 获取联系人的 TFS 项目

c# - FileNotFoundException - 动态发现

c# - ASP.NET 核心 MVC : How to get raw JSON bound to a string without a type?

c# - 上课时不阅读按钮单击时输入的表单

.net - 使用 VB.NET 处理 Excel com 对象的正确方法?