IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 .NET Discussion :

Liste des listes de matrice en C#


Sujet :

.NET

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 62
    Points : 29
    Points
    29
    Par défaut Liste des listes de matrice en C#
    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????

  2. #2
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    List<List<int[,]>> doit être une List de List de matrices d'entier (juste un doute sur le int[,] comme je l'utilise jamais...)

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 62
    Points : 29
    Points
    29
    Par défaut
    wi pour matrice d'entier, c'est int [,],
    mais en faite, j'ai voulu utilisé une truc que j'ai trouvé de genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    List<MyObj> listA;
          List<MyObj> listB;
    et MyObj de listA, serai une listB
    est- il possible???

  4. #4
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    Citation Envoyé par emna hakem Voir le message
    wi pour matrice d'entier, c'est int [,],
    mais en faite, j'ai voulu utilisé une truc que j'ai trouvé de genre:
    List<MyObj> listA;
    List<MyObj> listB;

    et MyObj de listA, serai une listB
    est- il possible???
    Le plus simple est d'imbriquer les types comme j'ai mis plus haut.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 62
    Points : 29
    Points
    29
    Par défaut
    en effet, je veux utilisé un truc de ce genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    List<MyObj> listA;
      List<MyObj> listB;
    car par la suite je peux comparer les éléments de la liste (les matrices)
    ca sera plus facile en utilisant object.equals ?????

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Août 2009
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 147
    Points : 174
    Points
    174
    Par défaut
    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.

  7. #7
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 62
    Points : 29
    Points
    29
    Par défaut
    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?!!

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Août 2009
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 147
    Points : 174
    Points
    174
    Par défaut
    Par exemple si tu fais:
    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);
    et bien te renverra false!

    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:
    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;
    tu peux faire çà si lst1 et lst2 sont des liste de type simple , par exemple les entiers, pour lequel on compare la valeur.

    est-ce clair?

  9. #9
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 62
    Points : 29
    Points
    29
    Par défaut
    c'est clair , mais le problème est que les éléments de la liste sont des matrices???

  10. #10
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 62
    Points : 29
    Points
    29
    Par défaut
    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 ?????

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Août 2009
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 147
    Points : 174
    Points
    174
    Par défaut
    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
    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;
    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.
    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;
    à +

  12. #12
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 62
    Points : 29
    Points
    29
    Par défaut
    merciiiiiiiiiiiiiii

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mapper des listes de listes
    Par minimarch76 dans le forum Hibernate
    Réponses: 4
    Dernier message: 31/01/2008, 09h05
  2. liste des listes
    Par naniate dans le forum C
    Réponses: 4
    Dernier message: 04/12/2007, 13h57
  3. Réponses: 7
    Dernier message: 06/08/2007, 14h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo