Opération sur les collections

suethi75 Messages postés 101 Date d'inscription mercredi 5 novembre 2008 Statut Membre Dernière intervention 31 août 2009 - 21 déc. 2008 à 22:30
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 - 21 déc. 2008 à 23:12
Bonsoir

 je voudrais comparer des données d'une collection tout en les ajoutant au fur et à mesure. Comment dois je faire?

Merci pour votre aide

3 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
21 déc. 2008 à 22:41
Salut,

Peux-tu etre plus explicite, avec un exemple de code par exemple?
Tes collections avant et le resultat attendu.

Un exemple simple
peux-tu préciser si tu es sur du framework
- 3 (VS2008) pour savoir si on peut repondre en linq
- 2 (VS2005) (list generique et delegate par exemple)
- 1 (VS2003) (arraylist ou hashtable)

exemple
col1 ("1","2","4") col2 ("2","6")

col1 = col1 intersect col2 soit le résultat suivant ("2")

Donc malheureusement
question vague = reponse vague.

Bon coding
0
suethi75 Messages postés 101 Date d'inscription mercredi 5 novembre 2008 Statut Membre Dernière intervention 31 août 2009
21 déc. 2008 à 22:47
Voici mon code.

if (garderLaReponse == "C")
                {
                    nreponse = reponse;
                    Console.Clear();

                }

                else
                {
                    Console.WriteLine("\n\n\n\t\t\t Saisir la réponse (A, B, C ou D)");
                    repCandidat = Console.ReadLine().ToUpper();
                    while ((repCandidat != "A") && (repCandidat != "B") && (repCandidat != "C") && (repCandidat != "D"))
                    {
                        Console.WriteLine("\n ERROR: Veuillez saisir la réponse (A, B, C ou D)");
                        repCandidat = Console.ReadLine().ToUpper();
                    }

                    tReponse = reponse.Split('|');
                    nreponse = tReponse[0] + '|' + repCandidat + '|' + tReponse[2];

                    Console.Clear();
                }
                    

                // Ajout dans une collection
                nouvelleReponse.Add(nreponse);

Dans la collection nouvelleReponse, je voudrais comparer la reponse du candidat (repCandidat) avec la vraie réponse (tReponse). Avec cela je voudrais faire le pourcentage de bonne réponse.
De plus j'ai VS2005 express.

Merci pour ton aide
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
21 déc. 2008 à 23:12
Pour gagner plus de maintenance

                    while ((repCandidat != "A") && (repCandidat
!= "B") && (repCandidat != "C") && (repCandidat != "D"))
remplace par

List<string> rep =new List<string>();
rep.add("A");rep.add("B");rep.add("C');rep.add("D"):

while(!rep.contains(repCandidat.ToUpper))
{
      Console.WriteLine("\n ERROR: Veuillez saisir la réponse (A, B, C ou D)");
      repCandidat = Console.ReadLine().ToUpper();
}

A la place de faire une serialisation avec des | fait des classes
c'est une implementation qui peut fonctionner mais il y en a surement d'autre

Fait une classe question que tu stockes dans une hashtable par exemple avec un id
texte
reponse
id

 
Fait une classe questionnaire.
nbquestion
nbreponsebonne

et donc si

nbquestion ++;
if(question[idcourant].reponse = reponse)
{
nbreponsebonne ++;
}

a la fin on a

% de bonne reponse
= nbreponsebonne *100 / nbquestion
 

J'ai un peu de mal a comprendre le principe ton truc
0
Rejoignez-nous