byte[][] в byte[] и обратно
Например есть byte2dX = new byte[999][]; как его преобразовать в byte1d = new byte[]; и затем например в byte2dY = new byte[999][];?
Код:
byte[][]
Код:
byte[,] array = new Byte[4, 2];
Код:
byte[,] array2D = new Byte[3, 2] { { 1, 2 }, { 3, 4 },{ 5, 6 } };
byte[] array1D = new Byte [array2D.GetUpperBound(0)+1];
for (int a = 0; a <= array2D.GetUpperBound(0); a++)
{
array1D[a] = array2D[a, 1];
array2D[a, 1] = 0;
array2D[a, 1] = array1D[a];
}
byte[] array1D = new Byte [array2D.GetUpperBound(0)+1];
for (int a = 0; a <= array2D.GetUpperBound(0); a++)
{
array1D[a] = array2D[a, 1];
array2D[a, 1] = 0;
array2D[a, 1] = array1D[a];
}
Только вопрос для чего перегонять 2 to 1 массив можно просто изпользовать
Код:
array2D[a, 0] or array2D[a, 1]
Я может что то не понимаю но причём здесь byte[,] array2D = new Byte[3, 2] { { 1, 2 }, { 3, 4 },{ 5, 6 } };? Нужно преобразовать byte[999][] то есть 999 byte[], 999 байтовых блоков НЕ ИЗВЕСТНОГО размера в 1 байтовый блок а затем разобрать опять в byte[999][]. Нужно для передачи по сети так как 1 байтовый блок уходит быстрее чем по штучно 999 раз отправлять. byte[999][] - наверное по любому хранится в памяти единым блоком данных, как его получить?
Код:
using (MemoryStream stream = new MemoryStream())
{
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(stream, longMessage);
byte[] actualData = stream.ToArray();
}
{
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(stream, longMessage);
byte[] actualData = stream.ToArray();
}
Код:
string longMessage = "";//Строка для преобразования в байты
for (int i = 0; i < 1024; i++)//Добавить 1024 символов
{
longMessage += "i";
}
byte[] buffer = Encoding.ASCII.GetBytes(longMessage);
for (int i = 0; i < 1024; i++)//Добавить 1024 символов
{
longMessage += "i";
}
byte[] buffer = Encoding.ASCII.GetBytes(longMessage);
Спасибо, попробую.