Tableaux contenant plusieurs types

cs_mathmax Messages postés 403 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 31 août 2008 - 6 janv. 2006 à 15:58
SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 - 9 janv. 2006 à 08:28
Bonjour, je cherche à faire un tableau à deux dimensions qui contient plusieurs types, comme cela :
{{"une string", un entier},{"une string", un entier},...}
Le problème est que je n'arrive pas à le déclarer. En cherchant dans des tutoriaux, j'ai trouvé qu'il faut déclarer un tableau d'Object pour pouvoir y mettre plusieurs types. Simplement dans mon cas, je vais toujours avoir la même disposition dans mon tableau : à chaque fois un couple string/entier et j'aimerais qu'ils soient considéré comme tels et non comme des object. Comment faire ?

Merci d'avance.

Mathmax

8 réponses

SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
6 janv. 2006 à 16:16
Hello,

tu peux créer une classe contenant un string et un entier, et faire un tableau avec les instances de cette classse :


public class
NameIntValue
{


private string
_name="";
private int
_intValue;


public string
Name
{
get
{
return
_name;
}
set
{
_name =
value;
}
}

public int IntValue
{
get
{
return
_intValue;
}
set
{
_intValue = value
;
}
}

public NameIntValue(string Name, int
IntValue)
{
_name = Name;
_intValue = IntValue;
}
}

ou plus simple, si tu utilise le .net 2.0, tu utilises les génériques

Amicalement, SharpMao
0
cs_mathmax Messages postés 403 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 31 août 2008
6 janv. 2006 à 16:41
Merci, mais je n'ai pas trouvé ce que sont les génériques. Pourrais-tu m'indiquer de quoi il s'agit ?


Mathmax
0
SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
6 janv. 2006 à 17:00
Hello,

Avec le .net 2.0, il existe de nouvelle classe dites génériques. c'est à dire que leur constructeur prend en paramètre un ou plusieurs types, et que les objets qui y sont insérés ou récupérés sont du bon type.

Pour ton problème, je te conseille l'utilistation de System.Collections.Generic.Dictionary

System.Collections.Generic.Dictionary<string, string> dic = new System.Collections.Generic.Dictionary <string, string> ();

dic.Add("Test",1);

Amicalement, SharpMao
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
6 janv. 2006 à 17:15
C'est Dictionary< string, int > que tu voulais dire non !?


En .Net 1.1 tu peux utiliser une Hashtable mais la paire key/value sera aussi des objets.
0

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

Posez votre question
SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
6 janv. 2006 à 17:22
Bien vu Lutinore, le copier/coller est encopre passé par là...

Amicalement, SharpMao
0
cs_thebigboss Messages postés 216 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 12 avril 2017 2
6 janv. 2006 à 17:40
Je vais peut-être dire une betise (encore une fois) mais un simple ArrayList ne ferait pas l'affaire?
0
cs_mathmax Messages postés 403 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 31 août 2008
6 janv. 2006 à 21:10
Ok ça marche bien si on complète le tableau avec des Add comme dans le lien que tu m'as passé. Mais n'y at-il pas moyen d'initialiser directement le tableau de couple de valeurs, comme ça :

System.Collections.Generic.Dictionary<string, string>[] dic = new System.Collections.Generic.Dictionary <string, string>[] {{"aa",1}, {"bb",2},{"cc",3}};
Ca me génère une erreur... :-(


Mathmax
0
SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
9 janv. 2006 à 08:28
Hello,

Je ne crois pas qu'on puisse initialiser directemnt un Dictionary, il existe bien un constructeur prenant un IDictonary en paramètre, mais ça m'étonnerais que ça fontionne avec
System.Collections.Generic.Dictionary<string, string>[] dic = new System.Collections.Generic.Dictionary <string, string>[] ({{"aa",1}, {"bb",2},{"cc",3}});

Pour thebigboss, c'est sur, un ou plusieurs ArrayList fonctionne aussi, mais il voulait des int/string en sortie et pas des objets, et si il a le 2.0, autant l'utiliser.

Amicalement, SharpMao
0
Rejoignez-nous