Verschoben aus GUI: WPF und Silverlight, da kein GUI-Bezug feststellbar.
Hallo zusammen,
wie entferne ich einen Eintrag aus der Liste richtig?
Anscheinend ist mein Eintrag z.B. DG_runter immer noch nicht richtig aus der Liste entfernt, wenn ich bereits diese schleife durchlaufen habe....
private void los()
{
while (mylist.Count > 0)
{
String aktuell;
aktuell = mylist.ElementAt(0);
if (aktuell == "DG_runter") { dg_runter(); if (mylist.Count > 0) { mylist.RemoveAt(0); }; };
if (aktuell == "2OG_runter") { og2_runter(); if (mylist.Count > 0) { mylist.RemoveAt(0); }; };
if (aktuell == "2OG_hoch") { og2_hoch(); if (mylist.Count > 0) { mylist.RemoveAt(0); }; };
if (aktuell == "1OG_runter") { og1_runter(); if (mylist.Count > 0) { mylist.RemoveAt(0); }; };
if (aktuell == "1OG_hoch") { og1_hoch(); if (mylist.Count > 0) { mylist.RemoveAt(0); }; };
if (aktuell == "EG_hoch") { eg_hoch(); if (mylist.Count > 0) { mylist.RemoveAt(0); }; };
}
}
Gruß mucki-nrw
Hallo,
was heisst "anscheinend" ?
Schau Dir die Liste doch einfach mal im Debugger an, dann siehst Du ja was drin ist und was entfernt wurde.
Gruß, MarsStein
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
Hallo mucki-nrw, willkommen im Forum,
verwende besser den Stack<T> anstatt das mit der List<T> nachzubilden.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
Aufgedröselt:
private void los()
{
while (mylist.Count > 0)
{
String aktuell;
aktuell = mylist.ElementAt(0);
if (aktuell == "DG_runter")
{
dg_runter();
if (mylist.Count > 0)
{
mylist.RemoveAt(0);
};
};
if (aktuell == "2OG_runter")
{
og2_runter();
if (mylist.Count > 0)
{
mylist.RemoveAt(0);
};
};
if (aktuell == "2OG_hoch")
{
og2_hoch();
if (mylist.Count > 0)
{
mylist.RemoveAt(0);
};
};
if (aktuell == "1OG_runter")
{
og1_runter();
if (mylist.Count > 0)
{
mylist.RemoveAt(0);
};
};
if (aktuell == "1OG_hoch")
{
og1_hoch();
if (mylist.Count > 0)
{
mylist.RemoveAt(0);
};
};
if (aktuell == "EG_hoch")
{
eg_hoch();
if (mylist.Count > 0)
{
mylist.RemoveAt(0);
};
};
}
}
Ein echter Kandidat für den Coding Style Horror Award.
(4, 5 und 6 würden durch Punkt 1 aufgeräumt, daher geklammert)
Hallo Gü,
verwende besser den Stack<T>
da die Elemente immer von erster Stelle entfernt werden, hätte das ganze IMO eher den Charakter einer Queue<T>.
Gruß, MarsStein
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
Hallo Markus,
oder sie werden auf den Kopf gestellt hinzugefügt und dann ist es wieder ein Stack 😉
Zur Laufzeit bzw. im gezeigten Code wird nix mehr hinzugefügt also sollte das egal sein.
Hallo mucki-nrw,
wie dem auch sei (Stack od. Queue) ist die Verwendung eine Grundlage die in :rtfm: ausreichend beschrieben ist. Bitte beachte [Hinweis] Wie poste ich richtig? Punkt 1.1, 1.1.1.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"