Variable "indexée"

Résolu
PrinceSilk Messages postés 56 Date d'inscription vendredi 31 janvier 2003 Statut Membre Dernière intervention 26 mai 2013 - 28 janv. 2012 à 01:12
PrinceSilk Messages postés 56 Date d'inscription vendredi 31 janvier 2003 Statut Membre Dernière intervention 26 mai 2013 - 28 janv. 2012 à 14:35
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

Whismeril Messages postés 18200 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 30 janvier 2023 625
28 janv. 2012 à 14:14
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
3
NHenry Messages postés 15032 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 janvier 2023 156
28 janv. 2012 à 01:53
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
0
PrinceSilk Messages postés 56 Date d'inscription vendredi 31 janvier 2003 Statut Membre Dernière intervention 26 mai 2013
28 janv. 2012 à 10:53
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
0
NHenry Messages postés 15032 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 janvier 2023 156
28 janv. 2012 à 13:59
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
NHenry Messages postés 15032 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 janvier 2023 156
28 janv. 2012 à 14:18
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
0
NHenry Messages postés 15032 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 janvier 2023 156
28 janv. 2012 à 14:20
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
0
PrinceSilk Messages postés 56 Date d'inscription vendredi 31 janvier 2003 Statut Membre Dernière intervention 26 mai 2013
28 janv. 2012 à 14:35
Tout était question de syntaxe :)
Merci beaucoup!!
0
Rejoignez-nous