Bonjour j'ai une question :

Qu'elle serait la méthode la plus propre , la plus rapide pour compter le nombre d'objet ayant le même identifiant dans une collection :
exemple : produit et qtte

[b]pour chaque [/b] produit monProduit de maListeDeProduit [b]faire[/b]
  pour i de 0 à maListeDeProduit.cadinal()  i++ faire
               si monProduit.identifiant()== maListeDeProduit[ i ].identifiant()
                           compt=compt+1
               finSi
  finPour 
  monTableau[0,i]=compt
  monTableau[i,0]=monProduit.getLibellé()
[b]Fin pourchq[/b]
retourner monTableau

Cette solution marche elle fait ce que je veux néanmoins je ne la sent pas (niveau optimisation) en plus :
le problème avec les tableaux c'est qu'on doit définir une taille à la déclaration et je ne sais pas combien j'aurais de produit dans ma collection ... si c'est une grosse facture ! Smiley eek
Si quelqu'un trouve une meilleur réponse il m'enlève une épine du pieds ! Merci pour la lecture
Modifié par Su4p (10 Jun 2010 - 21:33)
pour chaque  produit monProduit de maListeDeProduit faire
    identifiants[monProduit.identifiant()] += 1 (faudra peut-être vérifié l'existence de la variable)
    monTableau[i]= [
        monProduit.getLibellé()
        &identifiants[monProduit.identifiant()] (adresse/référence sur la valeur des identifiants)
    ]
Fin pourchq


Un truc comme ça ?

a écrit :
Le problème avec les tableaux c'est qu'on doit définir une taille à la déclaration

Ah ? Et c'est quoi le langage ? Il existe les tableaux dynamiques : la tailles s'adapte pendant l'exécution.[/i]
c'est plus rapide c'est vrai que je ne "re" parcours pas ma collection avec cette méthode (bien joué) mais je suis en C# et je ne pense pas que je puisse choisir l'adresse de référence du tableau comme on le ferait en PHP merci pour ta réponse
Modifié par Su4p (10 Jun 2010 - 20:41)
ha si !!! autant pour moi il faut utiliser un dictionnaire genre :

System.Collections.Generic.Dictionary<string, string> dic = new System.Collections.Generic.Dictionary<string, string>();
dic.Add("A", "test A");
MessageBox.Show(dic["A"])

si ça aide un jour quelq'un !

Merci jo_link_noir ! je vais essayer ta solution .
Modifié par Su4p (10 Jun 2010 - 21:31)