Laden...

[erledigt] ArrayList problem mit kopie und orginal

Erstellt von el_panter vor 16 Jahren Letzter Beitrag vor 16 Jahren 924 Views
E
el_panter Themenstarter:in
395 Beiträge seit 2007
vor 16 Jahren
[erledigt] ArrayList problem mit kopie und orginal

mahlzeit,

also folgendes problem:
ich habe eine ArrayList in der rund 3,5k einträge sind
von dieser, in eriner klasse gespeicherten ArrayListe, will ich in einer methode eine kopie haben.

klapt wunderbar
nur wen ich dan in der kopie einen eintrag lösche dan wird dieser auch in der orginalen in der klasse gespeicherten ArrayListe der wert gelöscht....

suboptimal

hier die entsprechenden codschnipsel:

Klasse

 
public ArrayList GetResources()                                         
{
    return Resources;
}

metode


ArrayList sSearchArrayList = new ArrayList();
sSearchArrayList = klasse.GetResources();
for (int sCount = 0; sCount < sSearchArrayList.Count; sCount++)
{
    if (<ifanweisung>)
    {
        sSearchArrayList.RemoveAt(sCount);
        sCount--;
    }
}

bitte wo leigt mein denkfehler ?

MfG Paul

M
190 Beiträge seit 2007
vor 16 Jahren

Du übergibst keine Kopie sondern eine Referenz auf dein Originalobjekt.

Das ist wie mit den Pointern in C. Du must ein neues Objekt erstellen und dann Clone() oder CopyTo() aufrufen.

E
el_panter Themenstarter:in
395 Beiträge seit 2007
vor 16 Jahren

... no comment. genau 5 sekunden vor deiner antwort hatte ich die idee. und genau 5 sekunden nach dem lesen deiner antwort ist mir dan folgendes eingefallen zu testn


                    sSearchArrayList = (ArrayList)kWorkOn.GetResources().Clone();

MfG Paul

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo el_panter,

BTW: vergiss ArrayList und verwende nur noch List<T>. Analog für alle anderen Collections.

herbivore

E
el_panter Themenstarter:in
395 Beiträge seit 2007
vor 16 Jahren

zu dem zeitpunkt als die ArrayListe entstanden ist wuste ich nix von List

und jetzt wos läuft, naja ich zitire mal "don't stop a running system" oder so^^

privat und in folgeprojekte werde ich die ArrayList jedoch keiner weiteren beachtung schenken ( dies aber schon seit einiger zeit);

... wiso hab ich jetzt nach der klammer enn semikolon gesezt 😁

MfG Paul

183 Beiträge seit 2004
vor 16 Jahren

Eigentlich heißt es "Never touch a running system." 8)

So einfach wie möglich, aber nicht einfacher. [Albert Einstein]

take a look at
* baer-torsten.de
* codinghints