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 :

Problème de logique de recherche


Sujet :

VB.NET

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 169
    Points : 100
    Points
    100
    Par défaut Problème de logique de recherche
    Bonjour,

    J'ai une structure ainsi définie:
    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
     
    Public Class cRegions
        Inherits Dictionary(Of String, cFlotte)
    End Class
     
    Public Class cFlotte
        Public Property Code As String
        Public Property Vehicules As Dictionary(Of String, cVehicule)
        Public Sub New()
            Vehicules = New Dictionary(Of String, cVehicule)
        End Sub
    End Class
     
    Public Class cVehicule
        Public Property Type As String
        Public Property Utilisateurs As List(Of String)
        Public Sub New()
            Utilisateurs = New List(Of String)
        End Sub
    End Class
    Dans mon application:
    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
     
            Dim FlotteRegions As New cRegions
     
            FlotteRegions.Add("Ile de France", New cFlotte With {.Code = "00001"})
            FlotteRegions.Add("Cote d'azur", New cFlotte With {.Code = "00002"})
     
            FlotteRegions("Ile de France").Vehicules.Add("610 GHP 75", New cVehicule With {.Type = "Utilitaire"})
            FlotteRegions("Ile de France").Vehicules.Add("1244 FFR 92", New cVehicule With {.Type = "VL"})
            FlotteRegions("Ile de France").Vehicules("610 GHP 75").Utilisateurs.Add("Pierre")
            FlotteRegions("Ile de France").Vehicules("610 GHP 75").Utilisateurs.Add("Paul")
            FlotteRegions("Ile de France").Vehicules("1244 FFR 92").Utilisateurs.Add("Jacques")
            FlotteRegions("Ile de France").Vehicules("1244 FFR 92").Utilisateurs.Add("Michel")
     
            FlotteRegions("Cote d'azur").Vehicules.Add("732 AAR 06", New cVehicule With {.Type = "VL"})
            FlotteRegions("Cote d'azur").Vehicules.Add("930 WKR 06", New cVehicule With {.Type = "VL"})
            FlotteRegions("Cote d'azur").Vehicules("732 AAR 06").Utilisateurs.Add("Luc")
            FlotteRegions("Cote d'azur").Vehicules("732 AAR 06").Utilisateurs.Add("Simon")
            FlotteRegions("Cote d'azur").Vehicules("930 WKR 06").Utilisateurs.Add("Albert")
     
            Dim sUtilisateur As String = "Boris"
            If FlotteRegions.Values.Select(Function(x) x.Vehicules.Select(Function(y) y.Value.Utilisateurs.Contains(sUtilisateur))).Count > 0 Then
                MsgBox("Utilisateur connu")
            Else
                MsgBox("Inconnu!")
            End If
    Le but est de connaitre si une personne faite partie des utilisateurs d'un véhicule quelque soit la région.
    Dans l'exemple ci-dessus, une recherche sur "Boris" me retourne "Utilisateur connu" alors qu'il ne fait pas partie du staff. Il va sans dire que je n'ai pas la bonne logique mais je coince...

    Merci pour l'aide

    Olivier

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 169
    Points : 100
    Points
    100
    Par défaut
    Bon,

    Il semble qu'en fait, la propriété .Count n'est pas appropriée.

    Voici ma solution (il y en a peut être une autre plus élégante?)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    If FlotteRegions.Values.Select(Function(x) x.Vehicules.Values.Select(Function(y) y.Utilisateurs.Contains(sUtilisateur)).First).Contains(True) Then
       MsgBox("Utilisateur connu")
    Else
       MsgBox("Inconnu!")
    End If

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

Discussions similaires

  1. [XL-2010] Problème de fonctions imbriquées (recherche V+ logique)
    Par stargate2370 dans le forum Excel
    Réponses: 4
    Dernier message: 15/11/2012, 14h25
  2. Problème sur moteur de recherche
    Par itachi64 dans le forum ASP
    Réponses: 9
    Dernier message: 24/03/2006, 14h41
  3. Petit problème de logique...
    Par insomniak dans le forum C++
    Réponses: 15
    Dernier message: 31/10/2005, 20h13
  4. problème avec résultat de recherche multi-critères
    Par audrey_desgres dans le forum Access
    Réponses: 2
    Dernier message: 23/06/2005, 11h00
  5. problème avec moteur de recherche
    Par allyson dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 16/02/2005, 16h23

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