Ich habe eine Anwendung, die mehrere Listen hat, um einige Werte während der Ausführung der Anwendung zu verfolgen. Insbesondere hat es List1, List2 und MainList.Aktualisieren einer Liste von Listen
List1 und List2 sind vom Typ String und MainList ist eine Liste der 2 anderen Listen.
In meiner Anwendung möchte ich die Werte der Listen aktualisieren und ändern, während die Anwendung läuft, aber ich habe Probleme herauszufinden, wie dies zu tun ist.
Es ist eine Bildbearbeitung Anwendung, die Fotos aus einer Datei verarbeitet. Die Anwendung muss die Werte der Listen für alle Fotos in der Datei verarbeiten. Daher wird es eine Schleife haben, die über alle Fotos iteriert und die Listen mit jeder Iteration aktualisiert.
Mein Algorithmus sollte wie folgt aussehen: * Wenn es das erste Bild ist, fügen Sie die Zeichenfolgen zu List1. Fügen Sie anschließend List1 zu MainList hinzu * Fügen Sie für jedes fortlaufende Bild die Zeichenfolgen zu List2 hinzu. Fügen Sie dann List2 MainList hinzu. Legen Sie List1 als die letzte Liste fest, die MainList hinzugefügt wurde. Löschen List2
Problem ist, dass wenn ich List2-Daten lösche, löscht es auch die Daten für List1, auf die es gesetzt wurde. Wie kann ich das verhindern? Ich habe meinen Code beigefügt, der hoffentlich mehr Sinn ergeben sollte. In meinem Code habe ich die Überprüfungen weggelassen, um zu sehen, ob es das erste Bild ist, da ich gerade den Algorithmus prüfte.
List<List<String>> MainStringList = new List<List<String>>();
List<String> StringList1 = new List<String>();
List<String> StringList2 = new List<String>();
StringList1.Add("My Car");
StringList1.Add("My Engine");
StringList1.Add("My Wheel");
MainStringList.Add(StringList1);
StringList2.Add("My Flower");
StringList2.Add("My Honey");
StringList2.Add("My Love Heart");
DoStuff(StringList1, StringList2);
private void DoStuff(List<String> StringList1, List<String> StringList2)
{
// Perform some calculations
// Then add to list
MainStringList.Add(StringList2);
int mainStringListCount = MainStringList.Count;
StringList1 = MainStringList[mainStringListCount - 1];
String test1 = StringList1[2];
StringList2.Clear();
String test2 = StringList1[2]; // Problem is here - clears StringList2 as well as StringList1
}
@Hans Moolman StringList2.Clear(); StringList1 wird nicht gelöscht, es sei denn, du sagst StringList1 = StringList2 ... aber ich sehe das nicht in deinem Code ... – NiK
Oops Sorry Leute, gemeint ist, ich mache es in C#. _italic StringList2.Klar(); StringList1 wird nicht gelöscht, es sei denn, Sie sagen StringList1 = StringList2_ Wenn ich StringList2 zu meiner MainList hinzufüge und diese dann zum Festlegen meiner StringList1 verwende, wird sie tatsächlich gelöscht. Ich bin durch den Code gegangen und nach StringList2.Clear() sind meine Werte von StringList1 alle null. Es sei denn, dass ich etwas anderes falsch mache, aber ich kann nichts sehen, was darauf hindeutet, dass ich es bin? – heyred