Handy c# snippets

string to byte[]

static byte[] GetBytes(string str)
{
byte[] bytes = new byte[str.Length * sizeof(char)];
System.Buffer.BlockCopy(str.ToCharArray(), 0, bytes, 0, bytes.Length);
return bytes;
}

byte[] to string
static string GetString(byte[] bytes)
{
char[] chars = new char[bytes.Length / sizeof(char)];
System.Buffer.BlockCopy(bytes, 0, chars, 0, bytes.Length);
return new string(chars);
}

byte[] = byte[] concat byte[]

 

private byte[] Combine(byte[] a, byte[] b)
{
byte[] rv = new byte[a.Length + b.Length];
System.Buffer.BlockCopy(a, 0, rv, 0, a.Length);
System.Buffer.BlockCopy(b, 0, rv, a.Length, b.Length);
return rv;
}

private byte[] Combine( params byte[][] arrays )
{
byte[] rv = new byte[ arrays.Sum( a => a.Length ) ];
int offset = 0;
foreach ( byte[] array in arrays ) {
System.Buffer.BlockCopy( array, 0, rv, offset, array.Length );
offset += array.Length;
}
return rv;
}