Création d'une classe objet Panier

mkolivier Messages postés 11 Date d'inscription mardi 8 juillet 2003 Statut Membre Dernière intervention 18 octobre 2013 - Modifié le 26 janv. 2022 à 19:46
Whismeril Messages postés 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 - 19 oct. 2013 à 08:10
Bonjour,

Je débute dans la programmation C#, et je n'arrive pas à créer une classe pour gérer un panier et des objets dedans. J'aimerai juste si quelqu'un pouvait me donner un exemple pour créer ce genre de classe.

Le but est de lister des objets, d'une même type par exemple :

ClassPanier panier = new ClassPanier();
Panier.Add(Add(new PanierItem(new[] { 1, "Savon", "Savon à l'huile d'olive", 5.00 }));
Panier.Add(Add(new PanierItem(new[] { 2, "Gel douche", "Gel douche bio", 6.00 }));
Panier.Add(Add(new PanierItem(new[] { 3, "Savon", "Savon parfum citron", 4.00 }));


avec une méthode Count pour la classe Panier qui me donnerait la valeur 3 (3 items)

Je ne sais pas trop comment faire cela. Juste un petit example pour comprendre la méthodologie, ensuite je me débrouillait.

En vous remerciant par avance.

Cordialement

5 réponses

BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 103
Modifié par BunoCS le 18/10/2013 à 17:52
Hello,
Panier.Add(Add(new PanierItem(new[] { 1, "Savon", "Savon à l'huile d'olive", 5.00 })); 

Y'aurait pas une méthode
Add()
en trop, là?

Ce serait plutôt
ClassPanier panier = new ClassPanier();
panier.Add(new PanierItem(1, "Savon", "Savon à l'huile d'olive", 5.00));


@+
Buno, Modo CS-CCM
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
Whismeril Messages postés 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 656
18 oct. 2013 à 19:53
Bonsoir, si ta classe Panier doit juste contenir des objets et avoir une méthode Count, cette classe existe déjà.
Il s'agit de la List<T>.
Dans ton cas, tu peux faire une liste de PanierItem et la remplir avec tout type d'objet ou de classe.

Un petit exemple valant mieux qu'un long discours:

List<PanierItem> panier = new List<PanierItem>();

panier.Add(new PanierItem(1, "Savon", "Savon à l'huile d'olive", 5.00));
panier.Add(new PanierItem(2, "Gel douche", "Gel douche bio", 6.00));
panier.Add(new PanierItem(3, "Savon", "Savon parfum citron", 4.00));

int nombrePanierItem = panier.Count;//c'est une propriété qui retourne le nombre d'objet dans la liste.
int nombreSavon = panier.Where(x => x.Parametre2 == "Savon").Count;//j'utilise Where pour faire une requête sur le deuxième Paramètre afin de retourner le nombre de savons

0
mkolivier Messages postés 11 Date d'inscription mardi 8 juillet 2003 Statut Membre Dernière intervention 18 octobre 2013
Modifié par mkolivier le 18/10/2013 à 20:36
Oui pardon je n'ai pas relu mon code :

Donc mon exemple serait :

ClassPanier panier = new ClassPanier();
Panier.Add(new PanierItem(new[] { 1, "Savon", "Savon à l'huile d'olive", 5.00 }));
Panier.Add(new PanierItem(new[] { 2, "Gel douche", "Gel douche bio", 6.00 }));
Panier.Add(new PanierItem(new[] { 3, "Savon", "Savon parfum citron", 4.00 }));

Je ne sais pas faire la classe PanierItem et comment faire le compte Count pour la classe parent ClassPanier

Merci de me donner une idée sur comment faire cela, ni de quelle classe parent pour créer mes classes.
0
Whismeril Messages postés 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 656
18 oct. 2013 à 20:51
Là tu réponds plutot à Buno ou moi?
Parce que c'est plutot flou, vis a vis de Buno, tu ne prends pas en compte le fait qu'il a changé tes accolades en parenthèses.
0
mkolivier Messages postés 11 Date d'inscription mardi 8 juillet 2003 Statut Membre Dernière intervention 18 octobre 2013
18 oct. 2013 à 21:56
Oui c'était à BrunoCS.

Merci Whismeril, je me doutais qu'il fallait utiliser List<>
0

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

Posez votre question
Whismeril Messages postés 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 656
19 oct. 2013 à 08:10
Bonjour pour ce qui est d'écrire une classe, ce tuto est pas mal.

Tu trouveras comment écrire ItemPanier.
Pour la déclaration d'un ItemPanier
new PanierItem(1, "Savon", "Savon à l'huile d'olive", 5.00)
cette façon utilise un constructeur avec paramètres (souvent en surcharge d'un constructeur sans paramètres).

Tu peux aussi utiliser les accolades, mais dans ce cas il te faut un constructeur sans paramètre et tu vas spécifier quelles propiétés tu initialises.
Par exemple je vais renseigner le nom et la date de naissaince d'une personne mais pas son prénom:
new Personne {Nom = "Dupont", Naissance = "01/01/1960"};


Concernant la classe Panier, le besoin que tu décris (stocker des données et les compter) est complètement rempli par une liste. Créer une classe spécifique n'est pas à mon sens utile. Mais si tu souhaites quand même le faire, il te faut une liste interne, une méthode Add qui appelle le Add de la liste et une méthode Count qui appelle le Count de la liste.

Enfin si tu as des requêtes à faire sur tes PanierItems, regarde ici
0
Rejoignez-nous