IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

[C#,débutante] recherche dans une arraylist


Sujet :

ASP.NET

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 20
    Points : 12
    Points
    12
    Par défaut [C#,débutante] recherche dans une arraylist
    Bonjour,

    Je souhaite rechercher dans mon arraylist une personne a partir de son Id. et renvoyer ces informations lui correspondant (nom, prenom..) une fois que je l'aurai trouvée. mais je ne sais pas trop comment mis prendre..

    Mon arraylist employes se compose ainsi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Personne perso = new Personne();
    perso.Id
    perso.nom=......
    perso.prenom=...
    ...
    employes.Add(perso);
    Donc mes valeurs sont ainsi stocké pour chaque personne:
    [0] -> avec dedant Id, nomRes, prenomRes.
    [1] ...
    [..]...


    Comment puis je procéder?? (je suis débutante donc un peu perdu .un peu d'aide sera la bien venue)

    En vous remerciant d'avance,je vous souhaite une bonne journée.

  2. #2
    Membre éclairé
    Avatar de panda31
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2003
    Messages
    670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2003
    Messages : 670
    Points : 848
    Points
    848
    Par défaut
    Pour rechercher dans ton ArrayList, tu peux utiliser la méthode IndexOf :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    public virtual int IndexOf(object value);
    /*indice de l'objet value dans le tableau ou -1 s'il n'existe pas*/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    public virtual int IndexOf(object value, int startIndex);
    /*idem mais en cherchant à partir de l'élément n° startIndex*/
    Une fois que tu as ton indice, tu peux le manipuler simplement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    id_res = employes[index_renvoye].id ;
    nom-res = employes[index_renvoye].nom ;
    prenom_res = employes[index_renvoye].prenom ;

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 20
    Points : 12
    Points
    12
    Par défaut
    Merci de ta réponse Panda31. je vais recherché de se coté.

    Mais pour l'instant ce qui me bloque:

    C'est que a l'origine j'ai déja l'id. (identifiant).
    Et que je souhaite trouver la personne ayant cet id. et renvoyer toutes les informations la concernant.

    La méthode de l'indexof est toujours valable pour ce cas de recherche?
    Merci

  4. #4
    Membre expérimenté Avatar de davcha
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 258
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 258
    Points : 1 539
    Points
    1 539
    Par défaut
    Si tu ne mets que des classes Personne dans ton ArrayList, je te suggère de modifier un peu ton code pour utiliser l'équivalent générique d'ArrayList : List<T>.

    Au lieu d'initialiser ta collection de cette manière : ArrayList employes = new ArrayList();
    tu le feras de cette façon : List<Personne> employes = new List<Personne>();

    A partir de là, tu as accès à des outils plus puissants que ceux proposés par ArrayList, notemment : List<T>.Find, List<T>.FindAll, etc...

    En ce qui concerne List<T>.Find, c'est une méthode qui te permet de trouver un élément de ta collection qui répond à certains critères.

    Dans ton cas :
    Personne employe = employes.Find(delegate(Personne p){return p.Id == 5;});
    pour trouver l'employé ayant un id égal à 5.


    Evidemment, c'est du c#2, je sais pas si c'est cette version du framework que tu utilises ?

  5. #5
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 43
    Points : 41
    Points
    41
    Par défaut
    Bonjour,

    Tu peux utiliser ton ArrayList et pour trouver la personne il te suffit de créer la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    private Personne recherche(int id)
    {
       foreach(pers in employes)
          if(pers.id  ==  id)
             return pers;
     
       return null;
    }

  6. #6
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 20
    Points : 12
    Points
    12
    Par défaut
    Merci beaucoup pour vos réponses . Elles m'on aidé a voir la fin de mon problème. et différentes manières de procéder.

    A bientot.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Rechercher dans une ArrayList
    Par Whinze dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 11/01/2013, 14h02
  2. Recherche dans une ArrayList
    Par SAKDOSS dans le forum Collection et Stream
    Réponses: 8
    Dernier message: 11/01/2012, 10h58
  3. [MySQL] [Débutant] Recherche dans une base de donnée
    Par Mysti¢ dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 30/07/2009, 16h56
  4. Recherche dans une ArrayList
    Par c-ve dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 10/07/2007, 11h22
  5. [Débutant]Recherche dans une Listview
    Par PierreBord dans le forum Composants VCL
    Réponses: 7
    Dernier message: 16/02/2006, 11h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo