Как я могу скопировать из ReadOnlySpan <T>в массив <T>? - PullRequest
2 голосов
/ 13 июля 2020

У моего класса есть свойство public byte[] Location{get;} = new byte[30];

Я хочу иметь возможность заполнить его из ReadOnlySpan<byte>, но я не могу найти никаких методов API, позволяющих это.

Ближайший I ' Мы нашли:

var array = span.Slice(0,30).ToArray();
Array.Copy(array, Locations, 30);

Но необходимость создания нового массива только для копирования из него кажется действительно некрасивой ... Речь идет о создании одного массива и двух копий. Я мог бы сделать свойство настраиваемым, но это не совсем то, что предполагалось.

Мне не хватает очевидного метода?

1 Ответ

1 голос
/ 13 июля 2020

Вы можете использовать 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...