Рейтинг:
18
Jochen Arndt
Как уже отмечалось в решении 1, существующего метода не существует.
Но довольно просто объявить массив ushort
с тем же количеством элементов, что и в байтовом массиве, и скопируйте данные внутри цикла:
ushort[] arr16 = new ushort[arr8.Length];
for (int i = 0; i < arr8.Length; i++)
{
arr16[i] = arr8[i];
}
hamid18
спасибо. это сработало для меня
Richard Deeming
Вы можете немного упростить это, используя Массив.ConvertAll[^]
ushort[] arr16 = Array.ConvertAll(arr8, b => (ushort)b);
Однако для очень больших массивов влияние на производительность вызова делегата для каждого элемента может стать проблемой.
Jochen Arndt
Спасибо, что поделились этим. Не искали процедуры преобразования массива.
[РЕДАКТИРОВАТЬ]
Не кажется ли вам, что такой простой делегат встроен, что приводит к аналогичному - если не идентичному - сгенерированному коду, как и мое решение?
[/РЕДАКТИРОВАТЬ]
Jochen Arndt
Еще раз спасибо за информацию.
Я слишком много думал в направлении C++, где лямбды могут быть встроены компилятором.