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

C# Discussion :

Tableau 2 dimensions [Débutant]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 056
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 056
    Par défaut Tableau 2 dimensions
    Bonjour,

    j'ai une question qui me semble bien bête mais je trouve pas de réponse!

    J'ai un code en java ou j'ai un tableau 2 dimension :
    En C# je traduis par :
    Plus loin dans le code je dois faire un swap colonne / ligne:
    En java :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    		double temp[];
    		temp = A[i];
    		A[i] = A[j];
    		A[j] = temp;
    Et bien en C# je fais ça comment? Comment accéder qu'a une seule colonne?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    		double temp[];
    		A.CopyTo(temp, i); ????....
    De manière général en java on peut facilement travailler sur une seul colonne mais en c# non? ou alors il faut passer par les "jaggedArray" mais on perd un peu l'utilité du tableau "multi dimension" non?

  2. #2
    Membre émérite Avatar de kheironn
    Homme Profil pro
    Chef de projets technique C# / MVC / .Net
    Inscrit en
    Février 2007
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets technique C# / MVC / .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2007
    Messages : 822
    Par défaut
    Citation Envoyé par micka132 Voir le message
    Bonjour,

    j'ai une question qui me semble bien bête mais je trouve pas de réponse!

    J'ai un code en java ou j'ai un tableau 2 dimension :
    En C# je traduis par :
    Pourquoi ? A[][] existe aussi en C#, c'est un JaggedArray : du tableau de tableau qui est en 2D.
    Citation Envoyé par micka132 Voir le message
    Plus loin dans le code je dois faire un swap colonne / ligne:
    En java :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    		double temp[];
    		temp = A[i];
    		A[i] = A[j];
    		A[j] = temp;
    Et bien en C# je fais ça comment? Comment accéder qu'a une seule colonne?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    		double temp[];
    		A.CopyTo(temp, i); ????....
    De manière général en java on peut facilement travailler sur une seul colonne mais en c# non? ou alors il faut passer par les "jaggedArray" mais on perd un peu l'utilité du tableau "multi dimension" non?
    Je ne suis pas certains que l'on puisse lire toute une ligne d'un coup (jamais essayé). Pour accéder à une cellule tu fais A[i,j] ou A[i][j] si jagged
    mais avec un bon algo ce devrait être faisable -> papier/crayon pour concevoir !

  3. #3
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 056
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 056
    Par défaut
    Merci pour la réponse.
    Pourquoi ? A[][] existe aussi en C#, c'est un JaggedArray : du tableau de tableau qui est en 2D.
    Parcequ'il me semble que philosophiquement parlant c'est plus représentatif!

    Pour accéder à une cellule tu fais A[i,j] ou A[i][j] si jagged
    mais avec un bon algo ce devrait être faisable -> papier/crayon pour concevoir !
    C'est justement ca qu'est bizarre! Ça me semble être une opération de base et l'on doit faire des boucles pour le faire.

    Finalement je vais utiliser le jaggedArray, mais vraiment je comprend pas l'interet de la version " multidimentionnel" si on ne peut pas travailler dessus simplement.
    Avec le jaggedArray je peux faire comme en java :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    double[][] test = new double[4][];
    ....
                double[] x=test[2];

  4. #4
    Membre émérite Avatar de kheironn
    Homme Profil pro
    Chef de projets technique C# / MVC / .Net
    Inscrit en
    Février 2007
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets technique C# / MVC / .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2007
    Messages : 822
    Par défaut
    Avec un code comme celui-ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    string[,] tab = { { "1:1", "2:1" }, { "1:2", "2:2" }, { "1:3", "2:3" } };
    for (int i = 0; i < tab.GetLength(1); i++)
        for (int j = 0; j < tab.GetLength(0); j++)
        {
            Console.WriteLine(tab[j, i]);
        }
    tu peux parcourir ton tableau ligne à ligne... mais tu es obligé de parcourir chaque cellule d'une ligne

  5. #5
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par micka132 Voir le message
    Finalement je vais utiliser le jaggedArray, mais vraiment je comprend pas l'interet de la version " multidimentionnel" si on ne peut pas travailler dessus simplement.
    - Layout mémoire plus optimal

    - plus facile à indexer (opération unique pour le multidim, multiple plus le jagged).

    - jagged array bordélique au délà de deux dimensions.

    - theoriquement plus rapide, mais du à une implémentation "perfectible" dans le CLR ce n'est pas toujours le cas

    cf. ici pour une comparaison entre les deux : http://stackoverflow.com/questions/5...of-arrays-in-c

  6. #6
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 056
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 056
    Par défaut
    Merci pour vos réponses.

    Ce que j'en conclu c'est qu'en 2 dimension je trouve plus simple d'utiliser le jagged. Pour plus de dimension surement que de toute manière il faut faire des algos donc ca changera rien.

  7. #7
    Membre émérite Avatar de kheironn
    Homme Profil pro
    Chef de projets technique C# / MVC / .Net
    Inscrit en
    Février 2007
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets technique C# / MVC / .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2007
    Messages : 822
    Par défaut
    Citation Envoyé par micka132 Voir le message
    ... de toute manière il faut faire des algos...
    C'est un peu le boulot de l'analyste/développeur de faire des algos... ou du CDP tech...

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

Discussions similaires

  1. [Collections] lecture tableau 2 dimensions
    Par heloise dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 30/09/2004, 10h49
  2. [tableau à 2 dimensions] association String et float
    Par LoLoSS dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 12/07/2004, 10h53
  3. Tableau à n dimensions
    Par youb dans le forum MFC
    Réponses: 10
    Dernier message: 13/05/2004, 14h13
  4. Passage d'un tableau à deux dimensions
    Par karl3i dans le forum C
    Réponses: 3
    Dernier message: 20/10/2003, 14h50
  5. Réponses: 23
    Dernier message: 21/08/2003, 07h16

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