none
if-Abfrage bei meinem Projekt RRS feed

  • Frage

  • Hallo, ich benötige eine kleine Hilfestellung bei meinen Problem. Ich möchte gerne lediglich den Auftrag ausgeben, der zu der eingebenen Auftragsnummer passt. (Also, wenn 1, dann Auftrag 1)


    Hier ist meine Form:

        public partial class Form1 : Form
        {
            List<Auftrag> AuftragEingabe = new List<Auftrag>();
    
            public Form1()
            {
                InitializeComponent();
            }
    
            private void BtnTest_Click_1(object sender, EventArgs e)
            {
                txtVorname.Text = "Max";
                txtNachname.Text = "Mustermann";
                txtPLZ.Text = "22083 Musterstadt";
                txtAdresse.Text = "Musterstraße 1";
                txtBeladestandort.Text = "Hamburg";
                txtEntladestandort.Text = "Bremen";
                txtLiefertermin.Text = "22.01.2020";
                txtArtikelName.Text = "Teer";
                txtArtikelAnzahl.Text = "/";
                txtArtikelGewicht.Text = "1,8t";
                txtArtikelVolumen.Text = "1cbm";
                txtBeladezeitundEntladezeit.Text = "ca. 1 Stunde";
                txtDauerdesTransports.Text = "3 Stunden";
            }
    
            private void BtnokEingabe_Click(object sender, EventArgs e)
            {
                Auftrag Auftragg = new Auftrag();
    
                Auftragg.Vorname = txtVorname.Text;
                Auftragg.Nachname = txtNachname.Text;
                Auftragg.PLZ = txtPLZ.Text;
                Auftragg.Adresse = txtPLZ.Text;
                Auftragg.Beladestandort = txtBeladestandort.Text;
                Auftragg.Entladestandort = txtEntladestandort.Text;
                Auftragg.Liefertermin = txtLiefertermin.Text;
                Auftragg.Artikelname = txtArtikelName.Text;
                Auftragg.Artikelanzahl = txtArtikelAnzahl.Text;
                Auftragg.Gewicht = txtArtikelGewicht.Text;
                Auftragg.Volumen = txtArtikelVolumen.Text;
                Auftragg.Ausfuehrungsdauer = txtBeladezeitundEntladezeit.Text;
                Auftragg.DauerdT = txtDauerdesTransports.Text;
                Auftragg.Auftragsnummer = txtAuftragsnummerEingabe.Text;
                AuftragEingabe.Add(Auftragg);
            }
    
    //Wie gebe ich hier nur den gesuchten Auftrag aus?
            private void BtnokAbfrage_Click(object sender, EventArgs e)
            {
                int.TryParse(txtAuftragsnummerAusgabeEingabe.Text, out int Auftragsnummer);
    
                StringBuilder sb = new StringBuilder();
    
                foreach (var Auftragg in AuftragEingabe)
                {
                    sb.AppendLine((Auftragg.AuftragzsmfAusgabe));
                }
                txtAusgabe.Text = sb.ToString();
            }
        }

    Außerdem habe ich noch eine weitere Klasse:

    class Auftrag
        {
            public string Vorname { get; set; }
            public string Nachname { get; set; }
            public string PLZ { get; set; }
            public string Adresse { get; set; }
            public string Beladestandort { get; set; }
            public string Entladestandort { get; set; }
            public string Liefertermin { get; set; }
            public string Artikelname { get; set; }
            public string Artikelanzahl { get; set; }
            public string Gewicht { get; set; }
            public string Volumen { get; set; }
            public string Ausfuehrungsdauer { get; set; }
            public string DauerdT { get; set; }
            public string Auftragsnummer { get; set; }
    
            public string AuftragzsmfAusgabe
            {
                get
                {
                    string ausgabe;
    
                    ausgabe = "Auftragsnummer: " + Auftragsnummer + Environment.NewLine;
                    ausgabe += "Vorname: " + Vorname + Environment.NewLine;
                    ausgabe += "Nachname: " + Nachname + Environment.NewLine;
                    ausgabe += "Adresse: " + Adresse + ", " + PLZ + Environment.NewLine;
                    ausgabe += "Beladestandort: " + Beladestandort + Environment.NewLine;
                    ausgabe += "Entladestandort: " + Entladestandort + Environment.NewLine;
                    ausgabe += "Liefertermin: " + Liefertermin + Environment.NewLine;
                    ausgabe += "Artikel: " + Artikelname + Environment.NewLine;
                    ausgabe += "Artikelanzahl: " + Artikelanzahl + Environment.NewLine;
                    ausgabe += "Gewicht (insg.): " + Gewicht + Environment.NewLine;
                    ausgabe += "Volumen (insg.): " + Volumen + Environment.NewLine;
                    ausgabe += "Belade- Entladezeit: " + Ausfuehrungsdauer + Environment.NewLine;
                    ausgabe += "Dauer des Transports: " + DauerdT + Environment.NewLine;
                    return ausgabe;
                }
            }
        }

    Ich würde mich sehr über eine Hilfestellung freuen. :)

    MfG



    Dienstag, 21. Januar 2020 10:59

Antworten

Alle Antworten

  • Hi,
    Du kannst LinQ bemühen, z.B. so:

        private void BtnokAbfrage_Click(object sender, EventArgs e)
        {
          int.TryParse(txtAuftragsnummerAusgabeEingabe.Text, out int Auftragsnummer);
    
          Auftrag Auftragg = (from a in AuftragEingabe where a.Auftragsnummer == Auftragsnummer.ToString() select a).FirstOrDefault();
    
          txtAusgabe.Text = Auftragg.AuftragzsmfAusgabe;
        }

    Oder auch mit den Erweiterungsmethoden von LinQ:

        private void BtnokAbfrage_Click(object sender, EventArgs e)
        {
          int.TryParse(txtAuftragsnummerAusgabeEingabe.Text, out int Auftragsnummer);
    
          Auftrag Auftragg = AuftragEingabe.Where((a) => a.Auftragsnummer == Auftragsnummer.ToString()).FirstOrDefault();
    
          txtAusgabe.Text = Auftragg.AuftragzsmfAusgabe;
        }


    --
    Best Regards / Viele Grüße
    Peter Fleischer (former MVP for Developer Technologies)
    Homepage, Tipps, Tricks

    Dienstag, 21. Januar 2020 11:46
  • Ich würde das ganze (auch wenn es komplizierter ist), gerne mit if-Abfragen machen. Würde es da eine Möglichkeit geben, das umzusetzten?
    Dienstag, 21. Januar 2020 13:46
  • Ich würde das ganze (auch wenn es komplizierter ist), gerne mit if-Abfragen machen. Würde es da eine Möglichkeit geben, das umzusetzten?
    foreach (var Auftragg in AuftragEingabe)
    {
        if( Auftragg.Auftragsnummer == Auftragsnummer.ToString() )
        {
            sb.AppendLine( Auftragg.AuftragzsmfAusgabe );
        }
    }



    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
    https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport

    Dienstag, 21. Januar 2020 13:48
    Moderator