Небезопасно нормально в .net C #? - PullRequest
4 голосов
/ 06 июня 2011

Мне нужно создать новый экземпляр String из массива sbytes (sbyte []).Для этого мне нужно конвертировать sbyte [] в sbyte *

Это возможно только с использованием небезопасного ключевого слова.Это нормально, или есть ли другие способы создать строку из массива sbytes?

Ответы [ 2 ]

7 голосов
/ 06 июня 2011

Во-первых: Как преобразовать sbyte [] в byte [] в C #?

sbyte[] signed = { -2, -1, 0, 1, 2 };
byte[] unsigned = (byte[]) (Array)signed;

Тогда:

string yourstring = UTF8Encoding.UTF8.GetString(unsigned);
1 голос
/ 06 июня 2011

Почему вы используете sbyte?

Encoding.Default.GetString () (и любая другая кодировка) принимает в качестве аргумента массив byte[], поэтому вы можете преобразовать массив sbyte[], используя LINQ, если всезначения неотрицательны: array.Cast<byte>().ToArray().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...