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 à bornes inconnues


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de cs_ntd
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2006
    Messages
    598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 598
    Par défaut Tableau à bornes inconnues
    Bonjour à tous !

    Je débute en C# et je rencontre un petit problème avec les tableaux...

    Bien qu'étant certain que mon problème est était traité/analysé/résolu des centaines de fois je n'ais pas réussi à trouver la réponse...

    J'invite l'utilisateur à entrer une série de noms de fichiers dans un contrôle, que je sépare ensuite en utilisant la classe regex, et je suohaite ensuite stocker mes valeurs dans un tableau de string... mais je n'y arrive pas...

    Je déclare au préalable mon tableau de la sorte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    string[] fichiersSource;
    et j'essaie d'assigner les valeurs dans mon tableau comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for (int i = 0; i < resultats.count; i++)
    {
        fichierSource[i] = resultats[i].value; // "relultats" contient les resultats de regex.Matches
    }
    mais le compilateur me renvoie l'erreur suivante : La référence d'objet n'est pas définie à une instance d'un objet... Si j'ai bien compris, il me dit donc que mon tableau est null et qu'il ne peut le remplir...

    J'ai donc essayé de déclaré quelques valeurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    string[] fichiersSource = new string[] {"..."}
    Tout marche à merveille, mais bien sûre, quand j'arrive à la fin de mon tableau, il me dit que je dépasse les bornes...

    Le problème vient du fait que je ne connait pas le nombres d'entrées que l'utilisateur fournira...


    Merci de m'aider lol

  2. #2
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    string[] fichiersSource = new string[resultats.count];
    for (int i = 0; i < resultats.count; i++)
    {
        fichierSource[i] = resultats[i].value; 
    }

  3. #3
    Membre éclairé Avatar de cs_ntd
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2006
    Messages
    598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 598
    Par défaut

    En effet vu sous cet angle là, ça parait plus simple... Il m'a fallut adapter parceque mon for est dans une procédure et que mon tableau doit être disponible partout dans la classe...

    Mais merci pour le déclic lol (desfois c'est tout bête ^^)

    Il n'y a donc pas moyens de déclarer un tableau à bornes "variables" ? càd plus on rajoute d'éléments plus ils s'agrandi ?? Sa me perturbe lol vu que ma TI 83 le fait ...

  4. #4
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par défaut
    Citation Envoyé par cs_ntd Voir le message
    Il n'y a donc pas moyens de déclarer un tableau à bornes "variables" ?
    Depuis C++ et sa STL aucun langage n'oserait manquer de ce genre de fonctionnalités

    En C#, les conteneurs dynamiques se trouvent dans le namespace System.Collections (pas vraiment utile sauf si tu es en framework 1 ou 1.1) et System.Collections.Generic. En l'occurence, ce que tu cherches, c'est une List<string>. La doc est abondante sur le net, y compris sur developpez.com, aussi bien dans ce même forum que dans les tutos

  5. #5
    Membre éclairé Avatar de cs_ntd
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2006
    Messages
    598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 598
    Par défaut
    Ok !
    Oui pour la doc je me doute lol mais comme je savais pas où (ou plutôt quoi chercher ^^)

    Merci beaucoup !

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 88
    Par défaut
    Personnellement, j'aurai plutot utilisé ArrayList (qui est je pense le véritable équivalent du tableau dynamique C++).

    Je ne pense pas que List<> soit un tableau, je crois que c'est une vraie liste chainée (donc beaucoup moins rapide qu'un vector C++).

    Par contre, le problème d'arrayList, c'est que tu dois caster à chaque fois l'objet que tu récupères, puisque ce n'est pas générique : il ne contient que des Object, rien de plus précis. Du coup, si ton code n'a pas besoin d'etre hyper rapide, mieux vaut utiliser List<>

    Bonne journée

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

Discussions similaires

  1. Calcul d'intégrale avec bornes inconnues
    Par clem3900 dans le forum MATLAB
    Réponses: 1
    Dernier message: 19/07/2012, 12h15
  2. Selectionner un tableau de taille inconnue
    Par pythagore3_14 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/08/2008, 11h54
  3. Tableau statique non borné
    Par bubulemaster dans le forum Débuter
    Réponses: 10
    Dernier message: 11/01/2008, 21h41
  4. taille de tableau inconnue
    Par scoder dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 13/07/2007, 12h49
  5. Réponses: 9
    Dernier message: 02/08/2006, 11h31

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