Bonjour à toutes et à tous,

Voici mon soucis :

- je possède une classe nommée ClassePersonne
- j'ai une liste de personne LIST<>

=>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
        private List<ClassePersonne> ListeContact;
        private ClassePersonne Personne = new ClassePersonne();
Dans mon code, j'intercepte l'évènement CLIC dans une listbox lstPersonne.
Je souhaite dès lors rechercher dans ma liste ListeContact, la personne qui a pour Personne.NOM + " " + Personne.PRENOM l'identique à celui choisi dans ma liste lstPersonne.

Jai tenté d'utiliser la fonction LIST.FIND() avec divers exemples que j'ai trouvé sur le net mais rien n'y fait.

http://www.c-sharpcorner.com/UploadF...b-2d2c59a17d36
http://www.thescripts.com/forum/thread474304.html

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
        private void lstPersonne_SelectedIndexChanged(object sender, EventArgs e)
        {            
         ucInfoPersonne.AfficherPersonne( ListeContact.Find(delegate(ClassePersonne p){Convert.ToString(p.NOM + " " + p.PRENOM).Trim() == lstPersonne.SelectedItem.ToString();}) );
        }
En espérant trouver une solution à mon problème, je vous dit déjà merci à l'avance

Si vous avez le courage , voici mon code en entier :

NB : Chargement() est lancée lors d'un clic sur un BOUTON.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
 
public partial class frmGestionErreurs : Form
    {
        // champs
        string maRequeteSQL = "";
        string monChamp = "";
 
        private List<ClassePersonne> ListeContact;
        private ClasseODBC odbc = new ClasseODBC();
        private ClassePersonne Personne = new ClassePersonne();
 
        // constructeur
        public frmGestionErreurs()
        {
            InitializeComponent();
            // création d'une liste de personnes
            ListeContact = new List<ClassePersonne>();
        }
 
        // charge la lst
        private void Chargement(ListBox listeConcernee)
        {
            listeConcernee.Items.Clear();
 
            if (odbc.OuvrirConnexion())
            {
                DataTable maTable = odbc.laTableRenvoyee(maRequeteSQL);
 
                // recherche des données
                foreach (DataRow row in maTable.Rows)
                {
                    listeConcernee.Items.Add(row[0].ToString());
                }
 
                // fermeture de la connexion
                if (!odbc.FermerConnexion())
                {
                    MessageBox.Show("Impossible de se déconnecter de la base de données.", "Erreur de fermeture de la connexion", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            else
            {
                MessageBox.Show("Impossible de se connecter à la base de données.", "Erreur de connexion", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
 
        // Gestion des listes
        private void lstErreur_SelectedIndexChanged(object sender, EventArgs e)
        {
            // on nettoye la liste
            lstPersonne.Items.Clear();
 
            maRequeteSQL = "SELECT * FROM t_info WHERE " + monChamp + " LIKE '%" + lstErreur.SelectedItem.ToString() + "%'";
            if (odbc.OuvrirConnexion())
            {
                DataTable maTable = odbc.laTableRenvoyee(maRequeteSQL);
 
                /* on crée une classe Personne qui va récupérer les infos
                 * pour ensuite ajouter cette classe dans notre liste de classe
                 */
 
                // recherche des données
                foreach (DataRow row in maTable.Rows)
                {
                    Personne.NOM = row["nom"].ToString();
                    Personne.ADRESSE = row["adresse"].ToString();
                    Personne.SEXE = row["sexe"].ToString();
                    Personne.CARTEIDENTITE = row["carte_identite"].ToString();
                    Personne.CODEPOSTAL = Int32.Parse(row["cp"].ToString());
                    Personne.CONJOINT = row["conjoint"].ToString();
                    Personne.ETATCIVIL = row["civil"].ToString();
                    Personne.LIEUNAISSANCE = row["lieu_naiss"].ToString();
                    Personne.LOCALITE = row["localite"].ToString();
                    Personne.NATIONALITE = row["nationalite"].ToString();
                    Personne.PARENTTUTEUR = row["parent_tuteur"].ToString();
                    Personne.PROFESSION = row["profession"].ToString();
                    // TODO gérer le prénom d'une personne
                    //Personne.PRENOM = row[""].ToString();
 
                    // TODO modifier la condition if car la date de naissance peut aussi être 01-01-0...
                    //if (row["naiss"].ToString() == "00-00-0000")
                    //{
                        // TODO choisir une action pour la date de naissance.
                        Personne.DATENAISSANCE = DateTime.Now;
                    //}
                    //else
                    //{
                    //    Personne.DATENAISSANCE = Convert.ToDateTime(row["naiss"].ToString());
                    //}
                        try
                        {
                            Personne.DATENAISSANCE = Convert.ToDateTime(row["naiss"].ToString());
                        }
                        catch
                        {
                            Personne.DATENAISSANCE = DateTime.Now;
                        }
 
                    // Ajouter la personne à la liste
                    ListeContact.Add(Personne);
 
                    // ajouter la personne à la liste
                    lstPersonne.Items.Add(Convert.ToString(Personne.NOM + " " + Personne.PRENOM).Trim());
                }
 
 
                // fermeture de la connexion
                if (!odbc.FermerConnexion())
                {
                    MessageBox.Show("Impossible de se déconnecter de la base de données.", "Erreur de fermeture de la connexion", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            else
            {
                MessageBox.Show("Impossible de se connecter à la base de données.", "Erreur de connexion", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
 
        private void lstPersonne_SelectedIndexChanged(object sender, EventArgs e)
        {
            ucInfoPersonne.AfficherPersonne( ListeContact.Find(delegate(ClassePersonne p){Convert.ToString(p.NOM + " " + p.PRENOM).Trim() == lstPersonne.SelectedItem.ToString();}) );
        }
    }