Accueil > Forum > > > > List - stocker des anciennes valeurs
List - stocker des anciennes valeurs
samedi 18 novembre 2006 à 12:41:34 |
List - stocker des anciennes valeurs

pitch6969
|
Bonjour, j'ai créé une classe point : class pt { /*déclaration des attributs privés*/ private float x; private float y; }
J'ai des accesseurs en écriture, en lecture et un constructeur qui prends en paramètres x et y. Je crèe un liste de points : list<pt> lis = new list<pt>(); pt p = new pt(2,0); pt p1 = new pt(1,0); lis.add(p); lis.add(p1);
Je voudrais stocker ces anciennes valeurs car je vais modifier les coordonnées des points, je cree un nouvelle liste :
list<pt> lis_old = new list <pt>(); //recopie de lis dans lis_old lis_old = lis;
//modification des coordonnées dans ma lis foreach pt p in lis { p.set_x(p.get_x() + 10); p.set_y(p.get_y() - 5); }
le problème avec ce code est que les valeurs de ma lis_old sont également modifié comment je peux faire svp pour garder ces anciennes valeurs. Merci d'avance.
Laurent
|
|
samedi 18 novembre 2006 à 12:52:28 |
Re : List - stocker des anciennes valeurs

coq
|
Salut, Comme il s'agit d'une classe, ton type pt est un type référence, tu as donc en fait les références aux mêmes objets dans les 2 listes. Lors de la copie il faut donc que tu crées de nouvelles instances avec les mêmes valeurs. Pour faciliter la tâche tu peux par exemple créer une méthode Clone (implémentation de ICloneable ou méthode Clone fortement typée) et t'en servir durant la phase de copie. /* coq MVP Visual C# CoqBlog*/
|
|
samedi 18 novembre 2006 à 13:24:43 |
Re : List - stocker des anciennes valeurs

Malkuth
|
Ou bien tu utilise une structure au lieu d'une classe (structure est un type valeur) il est a noter que dans System.Drawing il éxiste tout un tas de structure de ce type :
Point, PointF, Size, SizeF, Rectangle, RectangleF .... donc c'est par forcement la peine de réinventer la roue...
|
|
samedi 18 novembre 2006 à 14:36:07 |
Re : List - stocker des anciennes valeurs

Lutinore
|
Salut,
List< PointF > list = new List< PointF >( ); list.AddRange ( new PointF[ ] { new PointF( 0.1f, 0.1f ), new PointF( 0.2f, 0.2f ) } ); List< PointF > copy = new List< PointF >( list.ToArray( ) );
|
|
samedi 18 novembre 2006 à 15:19:43 |
Re : List - stocker des anciennes valeurs

pitch6969
|
coq,
as tu une idée pour la méthode clone.
D'avance Merci
|
|
samedi 18 novembre 2006 à 15:24:59 |
Re : List - stocker des anciennes valeurs

coq
|
Réponse acceptée !
public pt Clone() { return new pt(this.x, this.y); } Mais c'est vrai que si tu n'ajoutes rien fonctionnellement, tu peux peut être utiliser les structures Point existantes (qui du coup sont des types valeurs et éliminent ton "problème") /* coq MVP Visual C# CoqBlog*/
|
|
samedi 18 novembre 2006 à 15:30:25 |
Re : List - stocker des anciennes valeurs

Malkuth
|
ceci devrait fonctionner : class pt, IClonable { /*déclaration des attributs privés*/ private float x; private float y;
public float X { get{return this.x;} set{this.x=value;} }
public float Y { get{return this.y;} set{this.y=value;} }
public pt (float x,float y) { this.x=x; this.y=y; }
public Object Clone () { return new pt(this.x,this.y); } } ATTENTION : une classe prend plus de place en mémoire qu'une structure équivalente donc si tu utilise bcp de classe pt et que tu n'as pas besion de referencer le même ojet depuis plusieurs partie du code, essaie de changer ta classe en structure.
|
|
samedi 18 novembre 2006 à 15:32:14 |
Re : List - stocker des anciennes valeurs

Malkuth
|
Oups y'a comme une redondance!!! (j'ai été moins rapide ...)
mais la si t'a pas trouverton bonheur on pourrat pas faire mieux!
|
|
samedi 18 novembre 2006 à 15:34:45 |
Re : List - stocker des anciennes valeurs

coq
|
"class pt, IClonable" => class pt : IClon eable ;-) /* coq MVP Visual C# CoqBlog*/
|
|
samedi 18 novembre 2006 à 15:36:13 |
Re : List - stocker des anciennes valeurs

Lutinore
|
Struct ou class de toute façon le problème est là :
list<pt> lis_old = new list <pt>(); //recopie de lis dans lis_old lis_old = lis;
|
|
Cette discussion est classée dans : valeurs, list, pt, lis, anciennes
Répondre à ce message
Sujets en rapport avec ce message
Probleme de DropDownList [ par GazGaz ]
lu j'utilise visual c#.net et j'ai une page où se trouvent des DropDownList.je voudrais qu'au chargement de cette page, mes Ddl soient toutes vierges(
control couleur et list view [ par lionel55 ]
salut à tous,en csharp1. dans une liste view est il possible que lorsque l'on clique sur une ligneque cela coche aussi la case à cocher du début de li
datagrid valeurs [ par calaps ]
Bonjour,juste une mini question . . . comment fait on pour récupérer le contenu d'une cellule spécifique d'un datagrid...merci d'avance,C@lAps<img src
Conservation de valeurs [ par lumesh ]
(language C#)Bonjour,Voila, lors du chargement du SplashScreen de mon application je recupere des configurations se trouvant dans une base de donnée O
Probleme de valeurs d une form a lautre [ par giorgio08 ]
Bonjour a tous , merci bien pour les reponses à mes questions précédentes ca m'a bien aidé tout fonctionne!!J ai encore un probleme :j'ai une form Pro
Plusieurs valeurs dans le return [ par redpooka ]
Comment retourner plusieurs valeurs dans une fonction vu qu'en principe on ne peut retourner qu'une seule valeur ?Est-ce que retourner un tableau pour
Probleme de load [ par giorgio08 ]
Bonjour a tous j ai une petite question: J ai 2 radioButton lorsque je lance ma fenetre le premier est coché et j obtient certaines valeurs que je vai
Trier une SortedList pas par clé mais par valeurs ! [ par fabrice_mondor ]
Bonjour,Une question simple :Une SortedList est une liste qui prend en argument : - une clé : par exemple le nom de famille - une valeur : le nombre d
modification des valeurs du prog c# a partir d'un txt [ par mookette ]
BonjourALors j'ai rentrer les valeurs des boutons de mon programme sur un fichier txt :button4.Text=Explorer; bt1=explorer; button3.Text=InTerNeT; bt2
récuperer les valeurs d'une datagrid [ par oboudou ]
J'aimerais savoir comment faire pour récuperer les valeurs des données contenues dans une ligne que l'utilisateur vient de selectionner dans une datag
Livres en rapport
|
Derniers Blogs
[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|