Toon posts:

c# multidimensinale array van bytes versturen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben een projectje aan het optimaliseren om ipv 20x een array te versturen 1x een multidimensionale array te versturen

eerst had ik dus:

data_req1= (new byte[] { 0x00, 0x80, 0x0, 0x30, 0x35 });
en dat een keer of 20

maar wil dus naar een multidimensionale array to

byte[,] data_req = new byte[20, 5] { { 0x00, 0x80, 0x0, 0x30, 0x35 }, { 0x80, 0x00, 0x0, 0x1B, 0x35 } enz.... };


maar ik loop tegen het volgende probleem aan

eerder kon ik dmv serialPort1.Write(data_req1, 0, 5);
de hele array versturen

maar ik wil dus eigenlijk nu gaan versturen serialPort1.Write(data_req[1], 0, 5);

ben al een tijd in de msdn aan het zoeken maar kan er geen functie voor vinden die dit zo kan.

iemand een idee ?

Verwijderd

Maak er een jagged array van ipv een md array. byte[][] dus ipv byte[,], dan kan het wel. De exacte verschillen tussen een jagged en een md weet ik zo niet, behalve dat een jagged meer initialisatie nodig heeft. Maar dan kan het ieg wat jij wil :)

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Met een jagged array zal het idd wel lukken. Ik snap echter niet waarom je dit wilt doen?

Een jagged array is niet meer als een array van arrays dus je kan ook het volgende doen
C#:
1
2
byte[][] someArray = InitArray();
byte[] subArray = someArray[0];

De multi dimensionale array die jij gebruikt is niet meer als een handig truukje om een gewone array multi dimensionaal te gebruiken. Eigenlijk iets van het volgende
C#:
1
2
3
4
5
6
byte[] bytes = new byte[width*height];

public byte GetByte(byte[] b, int x, int y)
{
    return bytes[x + y * width];
}

Maar wat is de source van je bytes en waarom zou je die samen willen voegen?

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”