Forums Neueste Beiträge
 

List-Fehler

09/12/2007 - 10:21 von Alfons Ströbele | Report spam
Hallo Leute,

ich habe folgendes Problem mit einer generischen Liste festgestellt:

Ich schreibe in eine Liste byte-Arrays fester Größe:
List<byte[]> lst = new List<byte[]>();
byte[] x = new byte[255];
byte[] y = new byte[255];
// x und y bearbeiten und in Liste aufnehmen
lst.Add(x);
lst.Add(y);

Ändere ich nun ein einzelnes Bytes von x in der Liste, so werden die
Änderungen auch in y durchgeführt:
lst[0][0]%5;
byte z = lst[1][0]; // z hat nun auch den Wert 255

Was mache ich falsch?
Danke für jede Hilfe

Alfons
 

Lesen sie die antworten

#1 Alfons Ströbele
09/12/2007 - 10:55 | Warnen spam
Entwarnung! Das Problem hat sich gelöst.
Anstelle von einzelnen unabhàngigen Byte-Arrays habe ich folgende
Konstruktion (in vereinfachter Form) verwendet:

byte[] x = new byte[255];
for(int i=0;i<z;++i)
{
..x auffüllen und in Liste aufnehmen
}
In diesem Fall kommt es zu dem "sonderbaren" aber korrekten Verhalten.

Hàtte ich gleich drauf kommen sollen.

Gruß
Alfons


"Alfons Ströbele" wrote:

Hallo Leute,

ich habe folgendes Problem mit einer generischen Liste festgestellt:

Ich schreibe in eine Liste byte-Arrays fester Größe:
List<byte[]> lst = new List<byte[]>();
byte[] x = new byte[255];
byte[] y = new byte[255];
// x und y bearbeiten und in Liste aufnehmen
lst.Add(x);
lst.Add(y);

Ändere ich nun ein einzelnes Bytes von x in der Liste, so werden die
Änderungen auch in y durchgeführt:
lst[0][0]%5;
byte z = lst[1][0]; // z hat nun auch den Wert 255

Was mache ich falsch?
Danke für jede Hilfe

Alfons


Ähnliche fragen