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 :

Manipulation d'un ARRAY


Sujet :

.NET

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 42
    Points : 33
    Points
    33
    Par défaut Manipulation d'un ARRAY
    J'ai assez honte de le dire mais je n'arrive pas à manipuler un array, je n'est jamais au paravent utilisé cette classe et la problème est que dois effectuer un traitement sur un ARRAY pas en paramètre du style:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    private void maProcedure ( Array monArray, List<Element> ListeElement, int nombreElementARecuperer)
    {
    
    int compteurAvancement = 0; Element jeSuisPerdu; for (int i = compteurAvancement; i < (compteurAvancement + nombreElementARecuperer); i++) {
    jeSuisPerdu = ListeElement[monArray[i]]; Console.WriteLine(" Element d'id : " + jeSuisPerdu.Id + " récupéré")
    }
    }
    L'exemple est un peu bateau mais dans l'idée c'est ça et c'est surtout la ligne en gros qui pose problème car elle n'est pas valide.
    Sauriez vous comment allez chercher l'élément d'index i d'un Array et au passage comment ajouter à l'index i un élément.

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    C'est qui ListePoints ?
    Sinon Array contient des object, il faudrait faire un cast je pense :
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    jeSuisPerdu = ListePoints[(Element)monArray[i]];
    Et si tu met "jeSuisPerdu = ", tu n'as pas besoin d'en créer une instance (new Element()) juste avant car cette instance va de toute façon être jetée lorsque tu va assigner une nouvelle valeur à jeSuisPerdu.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 42
    Points : 33
    Points
    33
    Par défaut
    En effet, bon pour le new je l'ai mis par principe.
    Quand à ListePoints c'est une erreur c'est en fait le paramètre ListeElement.

    J'ai peu être ce qu'il me faut la méthode "GetValue" je vous dis si c'est concluent

  4. #4
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 366
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 366
    Points : 20 402
    Points
    20 402
    Par défaut
    Citation Envoyé par Idredeguerre Voir le message
    J'ai assez honte de le dire mais je n'arrive pas à manipuler un array, je n'est jamais au paravent utilisé cette classe et la problème est que dois effectuer un traitement sur un ARRAY pas en paramètre du style:

    L'exemple est un peu bateau mais dans l'idée c'est ça et c'est surtout la ligne en gros qui pose problème car elle n'est pas valide.
    Sauriez vous comment allez chercher l'élément d'index i d'un Array et au passage comment ajouter à l'index i un élément.

    Merci d'avance
    c'est compliqué l'exemple que tu donnes !

    list<> c'est en fait un tableau dynamique un tableau dont tu ne connais pas les limites et auquel tu peux ajouter ou retirer des éléments.
    Pourquoi gères-tu un Array alors que list<> fait la même chose en plus souple ?
    Si tu veux trouver un élément particulier dans une liste à ce moment-là SortedList par exemple est plus appropriée.
    Selon une clé tu peux retrouver un élément de ta liste.

    http://msdn.microsoft.com/en-us/libr...ortedlist.aspx

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 42
    Points : 33
    Points
    33
    Par défaut
    Je bosse sur le développement d'une appli déjà existante dont on veut faire passer une partie du traitement par linq.

    L'idée est que je ne peut pas changer la structure car elle implique de modifier d'autres partis de l'appli auquelles je n'ai pas accès. Quand au mic-mac list/Array cela vient du fais que je crée un AmasElement en récupérant une plage de valeur dans la liste . Cette plage contient les indices des Element de la Liste "ListeElements" à attacher à l'AmasElement. J'utilise ce procédé parce qu'un Element peut être attaché à plusieurs AmasElement.

    Voila pour la petite explication de la structure.

    Bon pour l'instant je n'ai pas encore le résultat souhaité mais j'ai en partie employé ta solution smyley en employant un cast mais de ce type :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    jeSuisPerdu = ListeElements[(int)monArray.GetValue(i)];

    Car le monArray et un tableau de int c'est ListePoints qui contient les Element
    Oui j'aurai peut être du expliquer un peu plus le fonctionnement

  6. #6
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Vous faites des choses étranges ... LINQ c'est vraiment puissant quand on utilise LINQ du début à la fin, les performances et le résultat sera le même si tu utilises les bonnes vieilles boucles et autres, et dans le cas présent ce sera plus rentable car moins coûteux en temps de développement avec ces trucs bizarres ...

    M'enfin, ça marche toujours pas ?

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 42
    Points : 33
    Points
    33
    Par défaut
    Si si, c'est bon ça marche. J'avais un moment des doutes car en fait je ne travaillais sur les bon indices mais c'était bien une cast et GetValue qu'il fallait utiliser.

    Après pour répondre au problème initial :

    - Pour récupérer un element d'un Array monArray se trouvant à l'index j
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    monArray.GetValue(j);
    - Pour rajouter un élément monElement dans un Array monArray à l'index j
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    monArray.SetValue(monElement, j);

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

Discussions similaires

  1. Manipulation Signature/Byte Array PHP
    Par saraza dans le forum Langage
    Réponses: 0
    Dernier message: 04/06/2015, 15h20
  2. Manipuler des tableaux / Array avec VBA
    Par funtim78 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 12/06/2012, 15h02
  3. Réponses: 1
    Dernier message: 02/04/2007, 17h16
  4. manipulation d'arrays recherche de valeurs
    Par Jasmine80 dans le forum Langage
    Réponses: 4
    Dernier message: 08/02/2007, 08h51
  5. [Types] Manipulation d'un array of const
    Par Clorish dans le forum Langage
    Réponses: 2
    Dernier message: 03/06/2005, 14h18

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