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

C# Discussion :

list<string>.BinarySearch en ignorant la casse


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 35
    Par défaut list<string>.BinarySearch en ignorant la casse
    Bonjour,

    Mon but est de recherché si dans une liste<string>, il existe un élément peu importe la casse. Pour cela, j'ai utilisé la méthode BinarySearch, mais je n'ai pas eu les résultats que j'attendais et je ne comprend pas pourquoi. Pour être plus claire, voici mon code :
    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
    private bool isInListIgnoreCase(List<string> inList, string inItem)
            {
                int itemFound = inList.BinarySearch(inItem, StringComparer.OrdinalIgnoreCase); // J'ai essayé aussi avec StringComparer.InvariantCultureIgnoreCase et StringComparer.CurrentCultureIgnoreCase, le résultat est le même
                log("--- Verify " + inItem + " found in position " + itemFound);
                if (itemFound >= 0)
                {
                    log(">>> Value " + inItem + "  Found (" + inList[itemFound] + ")");
                    return true;
                }
    /**
     * comme je ne trouvais pas mes items avec la méthode BinarySearch, j'ai fait "à la main", ce à quoi je m'attendais comme résultat
     */
                else
                {
                    string vLowerItem = inItem.ToLower();
                    log("Second chance for " + inItem);
                    foreach(string currentItem in inList)
                    {
                        if (currentItem.ToLower() == vLowerItem )
                        {
                            log(">>> Value (2nd chance) " + inItem + " Found (" + currentItem + ")" );
                            return true;
                        }
                    }
                }
                return false;
            }
    Donc j'aimerai comprendre pourquoi BinarySearch ne fait pas ce à quoi je m'attends. Je pense que j'ai du louper un truc, mais quoi ?

    Merci

  2. #2
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par défaut
    Ta liste est triée ? Sinon, la recherche binaire ne marche pas.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 35
    Par défaut
    Je savais bien que j'avais loupé un truc ! ^^

    Merci beaucoup !

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

Discussions similaires

  1. récupérer la partie commune d'une liste de String
    Par Kanter dans le forum Delphi
    Réponses: 11
    Dernier message: 18/04/2007, 12h46
  2. Créer un tableau de liste de string
    Par nobeone dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 06/04/2007, 14h58
  3. Réponses: 23
    Dernier message: 08/06/2006, 15h06
  4. [VB.net] Join d'un Array list de string?
    Par the_bmo dans le forum VB.NET
    Réponses: 8
    Dernier message: 15/12/2005, 13h53
  5. Comparaison d'une liste de string à un string
    Par maxazac dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 19/10/2005, 15h39

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