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 :

Supprimer les chiffres dupliqués dans une liste [Débutant]


Sujet :

C#

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2011
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Supprimer les chiffres dupliqués dans une liste
    Bonjour ,
    en effet je suis débutant en C#, je ne sais pas comment supprimer les doublons dans une liste sur C#. J'ai essayé le code suivant mais sa ne fonctionne pas.
    si quelqu'un peut m'aider SVP.
    Merci .

    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
    var numbers = new List<int>();
                while (true)
                {
                    Console.WriteLine("Enter a Number (or OK to exit)");
                    var x = Console.ReadLine();
                    if (x == "ok")
                    {
                        break;
     
                    }
     
                    numbers.Add(Convert.ToInt32(x));
                }
                foreach (var n in numbers)
                    for (var i = 0; i <= numbers.Count; i++)
     
                        if (n == numbers[i])
                            numbers.Remove(n);
     
                Console.WriteLine(numbers);
                Console.ReadKey();

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 197
    Points : 12 772
    Points
    12 772
    Par défaut
    Bonjour,
    Tu peux utiliser la méthode Distinct() de Linq:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    List<int> newList = Numbers.Distinct().ToList();
    Tatayo.

  3. #3
    Membre chevronné
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 896
    Points : 1 912
    Points
    1 912
    Par défaut
    Si l'ordre dans lequel les nombres sont saisis n'est pas important il est aussi possible d'utiliser un HashSet<int>, qui par défaut empêche les doublons.

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2011
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par tatayo Voir le message
    Bonjour,
    Tu peux utiliser la méthode Distinct() de Linq:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    List<int> newList = Numbers.Distinct().ToList();
    Tatayo.
    merci pour votre réponse, mais je ne suis pas arrivé à ce chapitre dans ma formation , sinon je l'aurai utilisé (il ne sera pas accepté malheureusement )
    mais finalement ,je l'ai fait comme ça :

    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
    var numbers = new List<int>();
                while (true)
                {
                    Console.WriteLine("Enter a Number (or OK to exit)");
                    var x = Console.ReadLine();
                    if (x == "ok")
                    {
                        break;
     
                    }
     
                    numbers.Add(Convert.ToInt32(x));
                }
     
                var newList= new List<int>();
                    foreach (var number in numbers)
                    {
                        if (!newList.Contains(number))
                            newList.Add(number);
                    }
     
                    Console.WriteLine("Unique numbers:");
                    foreach (var number in newList)
                        Console.WriteLine(number);
     
                    Console.ReadKey();

  5. #5
    Membre chevronné
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 896
    Points : 1 912
    Points
    1 912
    Par défaut
    Il y a aussi les méthodes int.Parse(string) et int.TryParse(string) pour convertir une chaîne de caractères en entier et qui sont préférables en terme de performance.

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 16/06/2014, 16h12
  2. Réponses: 4
    Dernier message: 01/10/2006, 15h37
  3. Réponses: 13
    Dernier message: 01/08/2006, 16h59
  4. Réponses: 7
    Dernier message: 24/04/2006, 15h48
  5. Réponses: 1
    Dernier message: 11/01/2006, 11h58

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