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

VB.NET Discussion :

Trouver un object dans une listof( object)


Sujet :

VB.NET

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 192
    Par défaut Trouver un object dans une listof( object)
    Bonjour à tous

    J'ai une list d'objet nommé ADUser. Je souhaiterais utiliser la méthode find de la list pour rechercher un objet mais selon un attribut particulier. Apparemment il faut utiliser les prédicats. ce qui j 'aimerais en gros c'est pouvoir envoyer en variable la valeur que je recherche, et que mon prédicat fasse cette recherche et me renvoi l'objet trouvé. Le code ci dessous ne compile pas mais c'est pour donner une idée de ce que je recherche.
    Merci pour votre aide

    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
     
         Public Sub Test()
            Dim GuidSearched = "aaa-ssss-ssss-ssss"
            Dim listADuSer As New List(Of ADUser)
            'on rempli la liste avec des ADuser
            listADuSer.Add(New ADUser)
            listADuSer.Add(New ADUser)
            listADuSer.Add(New ADUser)
            'Recherche un user selon une valeur
            listADuSer.Find(AddressOf PrediFindUserByGuid(GuidSearched))
     
        End Sub
     
        Private Function PrediFindUserByGuid(ByVal userScanned As ADUser, ByVal valSearched As String) As ADUser
            If userScanned.ObjectGUID.ToString = valSearched Then
                Return User
            End If
            Return Nothing
        End Function

  2. #2
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Avec le framework 1.x, tu devras stocker l'information (membre privé) pour l'utiliser dans la méthode.
    A partir du framework 2.0, tu peux utiliser une méthode anonyme.
    Depuis le framework 3.x, tu peux utiliser une expression lambda pour faire la même chose.

    Je mets le code en C#, car je ne connais pas de convertisseur qui gère les méthodes anonymes. Le principe est là en tout cas, un peu d'aide de Google et tu devrais t'en sortir.
    Code C# : 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
    class User
    {
        public string Name { get; set; }
        public bool Active { get; set; }
    }
    ...
    List<User> users = new List<User>();
    users.Add(new User { Name = "David", Active = true });
    users.Add(new User { Name = "Julien", Active = false });
    users.Add(new User { Name = "Sophie", Active = true });
    users.Add(new User { Name = "Vincent", Active = true });
     
    // Avec méthode anonyme
    User userNamedJulien = users.Find(delegate(User user) { return user.Name == "Julien"; });
     
    // Avec expression lambda
    User firstInactiveUser = users.Find(u => !u.Active);

    Edit : à priori, en cherchant un peu, les méthodes anonymes ne sont pas supportées en VB.Net ... les expressions lambda oui mais la syntaxe n'a rien à voir avec le C#. Bref

    soit tu peux utiliser les expressions lambda (framework 3.x)
    soit tu devras stocker l'info pour pouvoir l'utiliser dans la méthode du prédicat
    soit un VBNetiste passera donner une solution adaptée pour VB.Net, s'il y en a une ^^

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 192
    Par défaut
    Hello

    Merci, en effet ca marche bien ;-)

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

Discussions similaires

  1. Afficher une List<Object[]> dans une page JSP
    Par patricx dans le forum Spring Web
    Réponses: 8
    Dernier message: 24/05/2013, 13h51
  2. Tronquer le texte contenu dans une variable object ?
    Par drthodt dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 25/06/2008, 15h08
  3. Réponses: 2
    Dernier message: 19/04/2007, 16h57
  4. Définir le target des liens contenus dans une balise Object
    Par Booyakha dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 15/02/2007, 15h23

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