Как вы знаете, Array.Copy
быстрее, чем вручную копировать содержимое массива в другой, поскольку он выполняет прямую копию памяти из одного места в другое.Array.Copy между по-разному типизированными массивами
Но скажем, у меня есть short[]
и char[]
. Вы не можете сделать Array.Copy
между ними, потому что они не одного типа, , но элементы в них имеют одинаковый размер, i.e. sizeof(short) == sizeof(char)
. Как обойти ограничение типа, чтобы сделать memcpy
от short[]
до char[]
, не делая цикл for? Я говорю о чем-то, что было бы логическим эквивалентом reinterpret_cast<>
в C++.
TL; Если два массива имеют элементы одинакового размера, можете ли вы манипулировать ими, чтобы скопировать элементы между ними быстрее? У вас всегда может быть цикл for, но я ищу нечто вроде прямого memcpy
из одного массива в другой.
Кроме того, я хотел бы отметить еще один раз, для петель не будет принято. Я им хорошо знаком, но это вопрос производительности, спрашивающий, есть ли более эффективный способ сделать это.
Вы пробовали Buffer.BlockCopy? –
Может захотеть обратиться: http://stackoverflow.com/a/3783189 – nawfal
@KellyEthridge && nawfal: Ну, я думаю, вы, ребята, просто ответили на мой вопрос ... –