Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#11

Re: Container-Klassen in C#

  Alt 15. Nov 2007, 14:20
Ich verstehe nur noch Bahnhof.

Jedenfalls habe ich es jetzt mal so gemacht:

Code:
namespace Container_Klasse
{
    public partial class Form1 : Form
    {
        List<Person> PersonenListe = new List<Person>();

        private void UpdateControls()
        {
            toolStripStatusLabel1.Text = PersonenListe.Count.ToString();

            lbEntries.Items.Clear();
            foreach (Person person in PersonenListe)
            {
                lbEntries.Items.Add(person.Name + ", " + person.Vorname);
            }

            tbName.Text = string.Empty;
            tbVorname.Text = string.Empty;

            btnDel.Enabled = (PersonenListe.Count > 0) && (lbEntries.SelectedIndex > -1);
        }

        public Form1()
        {
            InitializeComponent();
            UpdateControls();
        }

        private void btnAdd_Click(object sender, EventArgs e)
        {
            Person p = new Person(tbName.Text, tbVorname.Text);
            PersonenListe.Add(p);
            tbName.Focus();
            UpdateControls();          
        }

        private void lbEntries_SelectedIndexChanged(object sender, EventArgs e)
        {
            btnDel.Enabled = lbEntries.SelectedIndex > -1;
            if (lbEntries.SelectedIndex > -1)
            {
                tbName.Text = PersonenListe[lbEntries.SelectedIndex].Name;
                tbVorname.Text = PersonenListe[lbEntries.SelectedIndex].Vorname;
            }
        }

        private void btnDel_Click(object sender, EventArgs e)
        {
            if (lbEntries.SelectedIndex > -1)
            {
                PersonenListe.RemoveAt(lbEntries.SelectedIndex);
                UpdateControls();
            }
        }
    }
}
Ist da irgendein schwerwiegender Fehler drin?

Wie könnte ich das ganze jetzt noch nach Name und Vorname sortieren?

Habs:
Code:
        private static int ComparePerson(Person p1, Person p2)
        {
            if (p1.Name == p2.Name)
                return p1.Vorname.CompareTo(p2.Vorname);
            else
                return p1.Name.CompareTo(p2.Name);
        }

        private void UpdateControls()
        {
            toolStripStatusLabel1.Text = PersonenListe.Count.ToString();

            PersonenListe.Sort(ComparePerson);


            lbEntries.Items.Clear();
            foreach (Person person in PersonenListe)
            {
                lbEntries.Items.Add(person.Name + ", " + person.Vorname);
            }

            tbName.Text = string.Empty;
            tbVorname.Text = string.Empty;

            btnDel.Enabled = (PersonenListe.Count > 0) && (lbEntries.SelectedIndex > -1);
        }
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat