Variable "indexée" [Résolu]

Signaler
Messages postés
56
Date d'inscription
vendredi 31 janvier 2003
Statut
Membre
Dernière intervention
26 mai 2013
-
Messages postés
56
Date d'inscription
vendredi 31 janvier 2003
Statut
Membre
Dernière intervention
26 mai 2013
-
Bonjour,
débutant en C#, je cherche à créer un ensemble de variables du même nom appelables via leur index:

exemple

while (I<5)
{
Mavariable(I)=... ;
I+=1
}

pour remplir en une boucle les variables
Mavariable(0)
Mavariable(1)
Mavariable(2)
Mavariable(3)
Mavariable(4)

Mais je ne sais pas comment définir une variable de ce genre...

Est ce possible en C#?

Merci beaucoup!

7 réponses

Messages postés
14613
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
14 août 2020
427
Bonjour,

NHenry t'a proposé la collection ou le tableau.
Dans le cas du tableau ça fonctionne comme tu le souhaites:

            string[] MonTableau = new string[10];
            MonTableau[2] = "deux";
            MonTableau[9] = "neuf";
            MonTableau[0] = "zéro";//les autres index ont une valeur null


Avec la collection c'est plus compliqué, il te faudrait faire une boucle pour ajouter 2000 string.empty et ensuite tu fais ce que tu veux de l'index 263. Cependant à l'utilisation la collection est bien plus flexible.


Whismeril
Messages postés
14694
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
14 août 2020
144
Bonjour,

Je pense que tu cherches à déclarer un tableau ou une collection :
- Tableau : type NomTableau[]; ou type NomTableau[NbElements];
- Collection : List<type> NomCollection=new List<type>();

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
Messages postés
56
Date d'inscription
vendredi 31 janvier 2003
Statut
Membre
Dernière intervention
26 mai 2013

Pour être précis, je cherche à créer 2000 chaines de caractères, mais sans avoir à les remplir une à une.

je pensais devoir écrire

string MaString[1999];

pour déclarer toute les "MaString" de 0 à 1999, mais ça ne marche pas comme ça en C# :(
car avec une collection, je suis obligé de remplir la list dans l'ordre, alors que j'aurais parfois besoin d'écrire la 263em variable avant la 1ere...

merciii
Messages postés
14694
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
14 août 2020
144
Bonjour,

"pour déclarer toute les "MaString" de 0 à 1999, mais ça ne marche pas comme ça en C# :( "
Peux-tu détailler (message d'erreur, ... ) ?

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
Messages postés
14694
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
14 août 2020
144
Bonjour,

Désolé, j'ai fais une petite erreur (je code rarement en C# :
http://msdn.microsoft.com/en-us/library/aa288453%28v=vs.71%29.aspx

C'est type[] NomVariable

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
Messages postés
14694
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
14 août 2020
144
Bonjour,

(Je n'ai pas vu le message de whismeril.
J'ajouterais que sinon, il est possible d'utiliser un dictionnaire :
Dictionnary NomCollection

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
Messages postés
56
Date d'inscription
vendredi 31 janvier 2003
Statut
Membre
Dernière intervention
26 mai 2013

Tout était question de syntaxe :)
Merci beaucoup!!