4

I need do create a new instance of String from the array of sbytes (sbyte[]). For that I need to convert sbyte[] into sbyte*

It is possible only using unsafe keyword. is that okay or is there any other ways to create a String from array of sbytes?

Sergey
  • 11,548
  • 24
  • 76
  • 113

2 Answers2

7

First: How to convert a sbyte[] to byte[] in C#?

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

Then:

string yourstring = UTF8Encoding.UTF8.GetString(unsigned);
Community
  • 1
  • 1
Steve
  • 31,144
  • 19
  • 99
  • 122
1

Why are you using sbyte?

Encoding.Default.GetString() (and any other encoding) takes a byte[] Array as argument, so you could convert the sbyte[] Array using LINQ if all values are non-negative: array.Cast<byte>().ToArray().

Oliver Hanappi
  • 12,046
  • 7
  • 51
  • 68