Ну, что-то близкое было бы использовать Buffer.BlockCopy
:
uint[] decoded = new uint[target.Length / 4];
Buffer.BlockCopy(target, 0, decoded, 0, target.Length);
Обратите внимание, что последний аргумент BlockCopy
равен всегда количество копируемых байтов, независимо от типов, которые вы копируете.
Вы не можете просто обрабатывать массив byte
как массив uint
в C # (по крайней мере, не в безопасном коде; я не знаю об этом в небезопасном коде) - но Buffer.BlockCopy
будет разбивать содержимое массив byte
в массив uint
... оставляя результаты, которые будут определены на основе порядкового номера системы. Лично я не фанат этого подхода - он оставляет код довольно склонным к ошибкам при переходе на систему с другим расположением памяти. Я предпочитаю быть явным в моем протоколе. Надеюсь, это поможет вам в этом случае.