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 :

Eliminer doublons a la creation de la liste [Débutant]


Sujet :

C#

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 549
    Points : 226
    Points
    226
    Par défaut Eliminer doublons a la creation de la liste
    Bonjour

    Je cree une liste de pays avec un bout de code recuperer sur le net...Pas de pb sauf qu il y a des doublons
    Je teste alors si le dernier nom de pays est identique au precedent... mais le test ne donne rien !

    Où me suis-je planté ?

    Merci de votre aide

    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
     List<RegionInfo> countries = new List<RegionInfo>();
                 string Last = "";
                foreach (CultureInfo culture in CultureInfo.GetCultures(CultureTypes.SpecificCultures))
                {
                    RegionInfo country = new RegionInfo(culture.LCID);
                    if (countries.Where(p => p.Name == country.Name).Count() == 0)
                    {
                        if (country.EnglishName != Last)
                        {
                            cbx_pays.Items.Add(country.EnglishName);
                        }
     
     
                    }
                   Last = country.EnglishName;
                }

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 549
    Points : 226
    Points
    226
    Par défaut
    Bon j ai solutionné le pb avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (!cbx_pays.Items.Contains(country.EnglishName))
                        {
                            cbx_pays.Items.Add(country.EnglishName);
                        }
    mais si l un d entre vous pouvait me dire où je me suis planté dans le code precedent, ce serait sympa .

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    J'ai regardé ton code et je n'ai vu aucun endroit où ta liste "countries" était renseignée. Du coup ton test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (countries.Where(p => p.Name == country.Name).Count() == 0)
    sera toujours vrai!

    Deuxième point : se baser sur l'entrée précédente pour vérifier s'il n'y a pas de doublons est faux car la documentation MSDN de la fonction "GetCultures" précise bien que la liste n'est pas triée.

    Dernier point : puisque tu utilises Linq, utilises-le à fond, notamment pour vérifier s'il n'y a pas de doublon.
    De plus, utilises aussi Linq pour avoir directement ton résultat, c'est plus simple.
    Regarde :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
                IEnumerable<string> englishNames =
                       CultureInfo.GetCultures(CultureTypes.SpecificCultures)
                       .Select(culture => new RegionInfo(culture.LCID).EnglishName)
                       .Distinct();
     
                foreach (string englishName in englishNames)
                {
                    cbx_pays.Items.Add(englishName);
                }
    Avec cela tu as tous les "EnglishNames" distincts directement et tu n'as plus qu'à remplir ta combo. N'est-ce pas génial Linq?

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 549
    Points : 226
    Points
    226
    Par défaut
    Merci
    C est vrai c est plus simple

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

Discussions similaires

  1. Eliminer Doublons sur 2 Champs
    Par defluc dans le forum SQL
    Réponses: 10
    Dernier message: 27/03/2007, 10h12
  2. Réponses: 9
    Dernier message: 14/01/2007, 17h09
  3. creation d'une liste
    Par smalto dans le forum C
    Réponses: 11
    Dernier message: 14/09/2006, 18h40
  4. Création d'une liste déroulante ?
    Par ultracoxy dans le forum Struts 1
    Réponses: 7
    Dernier message: 25/07/2006, 09h03

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