je suis débutante dans la programmation c#,
je souhaite savoir, si c'est possible de déclarer une liste dont les elements sont des listes. chacune est une matrice?????
si c'est possible comment faire????
je suis débutante dans la programmation c#,
je souhaite savoir, si c'est possible de déclarer une liste dont les elements sont des listes. chacune est une matrice?????
si c'est possible comment faire????
List<List<int[,]>> doit être une List de List de matrices d'entier (juste un doute sur le int[,] comme je l'utilise jamais...)
Retrouvez moi sur :
Mon Espace Developpez.com------------------------------- Dvp.NET, une librairie open-source de composants .NET
Mon blog: Up there in the code---------------------------- Twitter: NatMarchand
Ma société: So@t
Showrizo : Suivez votre planning de séries télé sous Windows 8
wi pour matrice d'entier, c'est int [,],
mais en faite, j'ai voulu utilisé une truc que j'ai trouvé de genre:
et MyObj de listA, serai une listB
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 List<MyObj> listA; List<MyObj> listB;
est- il possible???
Retrouvez moi sur :
Mon Espace Developpez.com------------------------------- Dvp.NET, une librairie open-source de composants .NET
Mon blog: Up there in the code---------------------------- Twitter: NatMarchand
Ma société: So@t
Showrizo : Suivez votre planning de séries télé sous Windows 8
en effet, je veux utilisé un truc de ce genre
car par la suite je peux comparer les éléments de la liste (les matrices)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 List<MyObj> listA; List<MyObj> listB;
ca sera plus facile en utilisant object.equals ?????
Il faut faire attention la méthode equals renvoie true si les objets ont une même référence et dans ton cas , je pense que ce qui t'interresse c'est de savoir si les valeurs de la matrice sont les mêmes. Ce n'est pas pareil, et d'ailleurs la méthode equals existe aussi sur les listes.
Il faut que tu compares chacunes des cases pour voir si elles sont identiques.
d'après ce que j'ai compris , je ne peux pas comparer les éléments de la liste en utilisant la méthode equals. donc je ne peux pas utiliser la méthode equals pour comparer un élément de la listeA avec un élément de la listeB.
je doit vérifier si les cases de la matrice sont égales?!!
Par exemple si tu fais:
et bien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 List<int> lst1= new List<int>(); lst1.Add(1); List<int> lst2 = new List<int>(); lst2.Add(1);te renverra false!
Code : Sélectionner tout - Visualiser dans une fenêtre à part lst1.Equals(lst2)
Car Equals compare juste la référence qui pointe sur ton objet et pas le contenu.
Pour avoir une comparaison par valeur tu peux faire:
tu peux faire çà si lst1 et lst2 sont des liste de type simple , par exemple les entiers, pour lequel on compare la valeur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 bool isEqual= true; for(int i= 0;i<lst.Lenght;i++){ if (lst1[i]!=lst2[i]) isEqual= false; } return isEqual;
est-ce clair?
c'est clair , mais le problème est que les éléments de la liste sont des matrices???
puisque les éléments de la liste sont des matrices,je ne peux pas utiliser la méthode equals pour vérifier si les deux éléments de chaque liste sont égaux.
je souhaite savoir s'il existe une autre méthode???
est_ce que on peux utiliser la méthode equals pour comparer deux objets.
en effet, j'ai une classe particule qui possède deux attributs(vitesse et position) et ces derniers sont de type liste de matrice.
et une classe essaim qui représente un tableau dont les éléments sont des particules. est que dans ce cas pour vérifier si deux composantes de tableau sont égaux je peux utiliser la méthode equals ?????
Non dès que tu veux faire une comparaison ,sur des objects qui ne sont pas de type simple ; (sbyte ,byte,short,ushort,int,uint,long ,...liste complète ici),et une matrice n'est pas de type simple, tu dois implémenter toi même ta méthode de comparaison:
exemple
Bien entendu, il faut que tu vérifie au préalable que tes matrices sont de taille égale. Dans le cas du dessus il s'agit de matrice de dimension [2,n].Pour des tailles différents , l'algo doit pouvoir ce généraliser.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 bool isEqual= true; for(int i= 0;i<mat.GetLenght(0);i++){ for(int j= 0;j<mat.GetLenght(1);j++) if (mat1[i,j]!=mat2[i,j]) isEqual= false; } return isEqual;
Si tu as des listes de matrices , il faut que tu combines les algo. Définit une fonction CompareMat(int [,] mat1,int[,] mat2),avec le code ci-dessus, qui te renvoie un booléen, et puis
à +
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 bool isEqual= true; for(int i= 0;i<lst.Lenght;i++){ if (CompareMat(lst1[i], lst2[i]==false) isEqual= false; } return isEqual;
merciiiiiiiiiiiiiii
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager