Comment empêcher la repetition de même mot dans mon ListBox? et dans mon tableau

stephaneLeonelY Messages postés 18 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 7 novembre 2012 - 25 avril 2012 à 17:14
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 - 30 avril 2012 à 16:39
Salut à tous, je suis un tout petit peu bloquer s'il vous plait. J e souhaiterai empêcher la repetion des mots dans mon listbox en c# et je dois avouer que je n'ai aucnue idée comment y procédé. quelqu'un peut il m'aider svp?

et je profite aussi de l'occasion pour exposer le même problem en SQL server comment empêcher la repetition des mots en sql server

par exemple si j'entre papa et que j'essaie une seconde fois d'ecrire papa il faudrait que celà soit rejetter parceque papa est déjà existant dans notre tableau.

quelqu'un peut il m'aider??




The Righteous will live by faith.
Galatians 3:12
A voir également:

5 réponses

StagiaireMsl Messages postés 43 Date d'inscription mardi 19 avril 2011 Statut Membre Dernière intervention 22 avril 2013 3
25 avril 2012 à 17:40
Salut Stephane,

J'ai dû faire encore une fois ce que tu cherches ce matin même, voila ce que ça donne :


//Tu crée un booléen qui dira si oui ou non il est déjà présent
bool bPresent = false;

//On va dire que c'est ton mot à ajouter
string sMotAAjouter = "blabla";

//On va regarder si ton mot est déjà dans la listBox
for(int i = 0 ; i < listBox1.Items.Count ; i++)
{
    if(sMotAAjouter == listBox1.Items[i].ToString())
    {
        bPresent = true;
    }
}

//Si ton bouléen est à vrai c'est qu'il existe déjà

//Donc si le booléen est faux on l'ajoute à la listBox
if(!bPresent)
{
    listBox1.Items.Add(sMotAAjouter);
}




Si tu as des Majuscules et minuscules et que tu veux que "Toto" soit pareil que "toto"

Alors il faut que tu mettes :


if(sMotAAjouter.ToUpper() == listBox1.Items[i].ToString().ToUpper())
{
    bPresent = true;
}



Celui qui n expérimente rien ne se trompe qu'une seule fois.
0
Tupad Messages postés 239 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 27 août 2012 5
26 avril 2012 à 09:12
Pour le SQL, tu peux mettre une contrainte sur ta table.

Pour le c#, il y a Linq qui peut aussi retirer les doublons grâce à la méthode d'extension Distinct().
0
StagiaireMsl Messages postés 43 Date d'inscription mardi 19 avril 2011 Statut Membre Dernière intervention 22 avril 2013 3
26 avril 2012 à 09:41
J'ai cherché un peu plus loin et dans ta listBox tu peux faire :


bool bTest = listBox1.Items.Contains(TonItem);



Si le booléen est vrai, c'est que l'objet existe déjà ...
Plus simple que le gros pavé que j'ai mis au dessus x)


Celui qui n expérimente rien ne se trompe qu'une seule fois.
0
stephaneLeonelY Messages postés 18 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 7 novembre 2012
27 avril 2012 à 10:52
Merci les gars ca marche. bon week end à vous.

Lg.
Stephane

The Righteous will live by faith.
Galatians 3:12
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
30 avril 2012 à 16:39
Salut

Avec Linq, il y a encore plus simple : toute collection (IEnumerable) a la méthode d'extension Distinct()

listBox1.Items = maListeSource.Distinct().ToList();


La méthode Distinct() accepte également un paramètre de type IEqualityComparer<T>, si tu souhaites faire des comparaisons plus poussées.

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
0
Rejoignez-nous