Laden...

Liste von Strings zu einem kommagetrennten String zusammenfügen

Erstellt von Lion1984 vor 13 Jahren Letzter Beitrag vor 13 Jahren 4.516 Views
Thema geschlossen
Hinweis von herbivore vor 13 Jahren

Abgeteilt von listbox.selectedindex liefert 0xffffffff

Bitte nur ein Thema pro Thread

A
30 Beiträge seit 2010
vor 13 Jahren

und noch was wisst ihr vielleicht warum folgende zeilencode nicht funktioniert.

ich möchte von einer liste, befüllt mit Namen von spalten einer Excel-Tabelle, ein einziges string erzeugen mit Spaltennamen und Kommas.
dh. wenn in meine liste folgendes steht :

List<string> liste = new List();

der lise werden 3 strings werte zu gewiesen. [IDnr, Personalnr , konto ].
nun will ich diese liste in einem einzigen string übertragen.
aber wird leider der u. g. code einfach übersprungen!!!

if (liste.Count > 1)
      {
        liste.ForEach(delegate(string spalte)
        {
          spalte =spalte + " ,";
          spaltenListe = splate;
        });
      }
L
Lion1984 Themenstarter:in
770 Beiträge seit 2006
vor 13 Jahren

Ähm setzt dich mit dem debugger hin und finde selbst das PRoblem?
Ist nicht böse gemeint, aber bei so einen "simplen" Beispiel lernt man gleich, wie man mit dem Debugger umgeht.

Pauschal sag ich mal, wenn er was überspringt, trifft wohl eine Bedienung nicht zu.

lg Lion

A
30 Beiträge seit 2010
vor 13 Jahren

also mit übersprungen meinte ich nur den foreach-teil und nicht die if-anweisung.
das wird übersprungen obwohl die list 3 Einträge beinhaltet??

übrigens vielen dank für die schnelle antworts 😃

L
Lion1984 Themenstarter:in
770 Beiträge seit 2006
vor 13 Jahren

Mal abgesehen von den ganzen Tipfehler sage ich, wenn du richtig Elemente hinzufügst, dann hast du kein Problem mit diesem Snippet.

Ich tippe mal du hast nur den letzten Eintrag in deinem "Gesamtstring", und wieso das so ist, erfährst du mit Debugger 😃 Beobachte einfach mal die Variablen.

lg Lion

4.931 Beiträge seit 2008
vor 13 Jahren

Die Hexanzeige setzt du über das Kontextmenü, d.h. bei Anzeige der Zahl im Debugger einfach rechte Maustaste drücken...

Und zu deinem Schleifen-Problem:
die Delegate-Methode arbeitet nur lokal, d.h. die Änderungen an 'spalte' werden nur jeweils pro Eintrag vorgenommen, so daß am Schluß in 'spaltenliste' nur der letzte Eintrag steht.

Verwende besser dafür einfach:


string spaltenliste = String.Join(" ,", liste.ToArray());

L
Lion1984 Themenstarter:in
770 Beiträge seit 2006
vor 13 Jahren

die Delegate-Methode arbeitet nur lokal, d.h. die Änderungen an 'spalte' werden nur jeweils pro Eintrag vorgenommen, so daß am Schluß in 'spaltenliste' nur der letzte Eintrag steht.

Hat aber wohl wengier mit der Methode noch mit der Spalte zu tun, es liegt einfach an der Zuweißung: "spaltenliste=spalte", damit überschreibt er immer den Wert, ein "spaltenliste+=spalte" tuts auch. 😃

lg Lion

A
30 Beiträge seit 2010
vor 13 Jahren

erst mal vielen Dank für eure zahlreichen Antworten und Tipps.Es tut mir für die ganzen Tippfehler und dadurch entstandenen Umständen leid.

Ich hab den Lösugnsweg von Th69 ausprobiert, und muss sagen war vom Ergebniss begeistert funktioniert jetzt wunderbar. 😃)

Hinweis von herbivore vor 13 Jahren

Bitte beachte [Hinweis] Wie poste ich richtig? Punkt 1.1.1 und 1.1.

Thema geschlossen