Laden...

Eintrag aus Liste richtig löschen!

Erstellt von mucki-nrw vor 12 Jahren Letzter Beitrag vor 12 Jahren 894 Views
Thema geschlossen
Hinweis von MarsStein vor 12 Jahren

Verschoben aus GUI: WPF und Silverlight, da kein GUI-Bezug feststellbar.

M
mucki-nrw Themenstarter:in
4 Beiträge seit 2011
vor 12 Jahren
Eintrag aus Liste richtig löschen!

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

3.170 Beiträge seit 2006
vor 12 Jahren

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

6.911 Beiträge seit 2009
vor 12 Jahren

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!"

M
mucki-nrw Themenstarter:in
4 Beiträge seit 2011
vor 12 Jahren

Wie bekomme ich das hin?

Gruß mucki-nrw

U
1.578 Beiträge seit 2009
vor 12 Jahren

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.

  1. Viel zu viel doppelter Code
  2. Unnötige ";"
  3. Alles Deutsch
    [4. C# Naming Convention nicht einhalten]
    [5. Unnötige Klammern]
    [6. Unnötige Count abfragen]

(4, 5 und 6 würden durch Punkt 1 aufgeräumt, daher geklammert)

3.170 Beiträge seit 2006
vor 12 Jahren

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

M
mucki-nrw Themenstarter:in
4 Beiträge seit 2011
vor 12 Jahren

???

Gruß mucki-nrw

6.911 Beiträge seit 2009
vor 12 Jahren

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!"

Thema geschlossen