none
alle elemente eine list<int, string> in eine "Sammel-String" schreiben und im Messagebox zurückgeben RRS feed

  • Frage

  • Guten Morgen zusammen,

    ich habe eine liste aus einer Klasse. die Klasse besteht aus 2 Parameter (int flyerId, string flyerbez). Ich möchte jetzt jede Datensatz von meiner Liste in einer Message-box zurückgeben. jede Daten in der liste sollte in einer Zeile geschrieben werden. ich möchte so im Display bekommen

    Folgende Flyer sind vorhanden

    flyerID Flyerbez

    1 - flyer1,

    4 -  flyer2,

    6 - fplyer12,

    ich habe schön viel probiert. 

    // Die Klasse
      public class VersandFlyer
        {
            public int FlyerID { get; set; }
            public string FlyerBezeichnung { get; set; }
            public string Artikelnummer { get; set; }
        }
    
    List<VersandFlyer> _listFlyerBezAndID = new List<VersandFlyer>();
    List<VersandFlyer> _removeduplicate2 = new List<VersandFlyer>();
       if (_listFlyerBezAndID.Count() != 0)
                    {
                        string AllFlyerBez2 = string.Empty;
                        string AllFlyerBez3 = string.Empty;
                        _removeduplicate2 = _listFlyerBezAndID.GroupBy(FBez => FBez.FlyerID).Select(g => g.FirstOrDefault()).OrderBy(s => s.FlyerID).ToList();
                        //_removeduplicate2 = _listFlyerBezAndID.GroupBy(FBez => FBez.FlyerBezeichnung).ToList();
    
                        for (int i = 0; i < _removeduplicate2.Count; i++)
                        {
                            AllFlyerBez2 = string.Join("", _removeduplicate2.ToString().ToArray()); // die zeile funktioniert nicht. meldung "System.Collections.Generic.List`1[Komm.VersandFlyer]"
    
                            AllFlyerBez2 = string.Format("{0} - {1}, \r\n", _removeduplicate2[i].FlyerID, _removeduplicate2[i].FlyerBezeichnung); // Die Zeile übergibt einzelne elemente von der liste zurück meldung "4 - flyer4, "
    
                            AllFlyerBez3 = string.Join("", AllFlyerBez2.ToString().ToArray()); //da möchte ich alle elemente von der liste sammeln und im Message box geben. (FlyerID - Flyerbez,)
                        }
                      
                        MessageBox.Show(String.Format("Folgende Flyer sind vorhanden:\r\n{0}", AllFlyerBez3),
                                 "Hinweis", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); 
                    }

    Danke im voraus für eure Hilfe.


    • Bearbeitet Matsak Dienstag, 25. Oktober 2016 09:13
    Dienstag, 25. Oktober 2016 09:12

Antworten

  • Hi,

    String resulta = String.Join( Environment.NewLine, ( from n in _listFlyerBezAndID select n.FlyerID.ToString() + " - " + n.FlyerBezeichnung ) );


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    • Als Antwort markiert Matsak Dienstag, 25. Oktober 2016 09:47
    Dienstag, 25. Oktober 2016 09:39
    Moderator

Alle Antworten

  • Hi,

    probier mal diesen Code:

    List<VersandFlyer> _listFlyerBezAndID = new List<VersandFlyer>();
    _listFlyerBezAndID.Add( new VersandFlyer() { FlyerID = 1, Artikelnummer = "00001", FlyerBezeichnung = "Abc" } );
    _listFlyerBezAndID.Add( new VersandFlyer() { FlyerID = 2, Artikelnummer = "00002", FlyerBezeichnung = "Def" } );
    _listFlyerBezAndID.Add( new VersandFlyer() { FlyerID = 3, Artikelnummer = "00003", FlyerBezeichnung = "Ghi" } );
    _listFlyerBezAndID.Add( new VersandFlyer() { FlyerID = 4, Artikelnummer = "00004", FlyerBezeichnung = "Xyz" } );
    
    String result = String.Join( Environment.NewLine, ( from n in _listFlyerBezAndID select n.FlyerBezeichnung ) );

    Für dich relevant ist nur die letzte Zeile, der Rest dient nur dazu, das Beispiel nachvollziehbar zu machen.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Dienstag, 25. Oktober 2016 09:23
    Moderator
  • Hallo Stefan,

    Danke für die schnelle Antwort. 

    Die letzte Zeile übergibt mir nur die Flyerbez ohne FlyerID zurück.

    so:

    Flyer1
    Flyer2
    Flyer3
    fl12

    Aber ich möchte auch die FlyerID zurückgeben.

    so:

    1- Flyer1,
    2-Flyer2,
    3-Flyer3,
    4-fl12,

    Danke


    • Bearbeitet Matsak Dienstag, 25. Oktober 2016 09:38
    Dienstag, 25. Oktober 2016 09:37
  • Hi,

    String resulta = String.Join( Environment.NewLine, ( from n in _listFlyerBezAndID select n.FlyerID.ToString() + " - " + n.FlyerBezeichnung ) );


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    • Als Antwort markiert Matsak Dienstag, 25. Oktober 2016 09:47
    Dienstag, 25. Oktober 2016 09:39
    Moderator
  • Hallo Stefan,

    Vielen vielen Dank.

    Gruß

    Dienstag, 25. Oktober 2016 09:46