Smookii
Messages postés10Date d'inscriptionlundi 18 juin 2012StatutMembreDernière intervention29 mars 2013
-
3 mars 2013 à 23:16
izords
Messages postés20Date d'inscriptionsamedi 27 avril 2002StatutMembreDernière intervention 4 mars 2013
-
4 mars 2013 à 21:20
Bonjour,
alors voila je suis entrain de créer un jeu, et à un moment je fais une fonction qui vas retourner un tableau de string qui sera composer de plusieurs paramètres.
Mais certain de ces paramètre sont eux même des tableau de int, ce qui n'est pas un problème pour les retourner, puisque on peu convertit le int[] en string , mais c'est un problème pour les recevoir parce que je dois reconvertir les valeurs du tableau string en int[], est ce possible ?
Ex :
int[] para01_reçu = new int[2];
int[] para02_reçu = new int[5];
int[] para03_reçu = new int[4];
string[] str_Reçu_des_Param = new string[3];
str_Reçu_des_Param = Fonction();
para01_reçu = Convert.to???(str_Reçu_des_Param[0]);
para02_reçu = Convert.to???(str_Reçu_des_Param[0]);
para03_reçu = Convert.to???(str_Reçu_des_Param[0]);
public string[] Fonction()
{
int[] para01 = new int[2];
int[] para02 = new int[5];
int[] para03 = new int[4];
string[] str_Retour_de_Fonction = new[3];
str_Retour_de_Fonction[0] = Convert.ToString(para01);
str_Retour_de_Fonction[1] = Convert.ToString(para01);
str_Retour_de_Fonction[2] = Convert.ToString(para01);
return str_Retour_de_Fonction;
}
izords
Messages postés20Date d'inscriptionsamedi 27 avril 2002StatutMembreDernière intervention 4 mars 2013 4 mars 2013 à 17:59
Je suis entièrement d'accord avec Whismeril, la meilleur façon de faire ce que tu veux c'est de te faire une classe avec tout ce que tu as besoin. C'est plus clair et plus facile à comprendre par la suite. Sinon si tu tiens vraiment à avoir une liste c'est possible d'avoir une "liste" avec des types différents :
List<Tuple> result = new List<Tuple>();
result.Add(new Tuple(new int[] {1,2}, new int[] {3,4,5}, true, 100, "mystring" ));
Whismeril
Messages postés18636Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention30 septembre 2023629 4 mars 2013 à 09:33
Tout à fait d'accord avec Izords, les list c'est beaucoup plus simple et souple d'emploi que les tableaux.
Mais si tu veux vraiment un tableau de string représentant un tableau de int voilà comment faire:
private void tuitu()
{
int[] int1 = { 1, 2, 3 };
int[] int2 = { 2, 3, 4 };
string[] texte = new string[2];
texte[0] = string.Join(";", ConvertTableauInt(int1));//la methode Join crée un string contenant chaque valeur du tableau séparé par le texte passé en paramètre
texte[1] = string.Join(";", ConvertTableauInt(int2));
//ensuite pour récupérer tes valeurs:
string[] int12 = texte[0].Split(';');//la méthode split fait l'inverse de join, tu te retrouves avec un tableau de string représentant tes int
string[] int22 = texte[1].Split(';');
}
/// <summary>
/// La méthode join prend un string[] en entrée, il faut donc convertir le int[]
/// </summary>
///
/// <returns></returns>
private string[] ConvertTableauInt(int[] entree)
{
int l = entree.Length;
string[] sortie = new string[l];
for (int i = 0; i < l; i++)
sortie[i] = entree[i].ToString();
return sortie;
}
Whismeril
Messages postés18636Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention30 septembre 2023629 4 mars 2013 à 17:45
Si le but au final est de transmettre diverses info de plusieurs type, pourquoi ne pas te créer une classe avec en propriétés tout ce que tu dois transmettre?
yann_lo_san
Messages postés1137Date d'inscriptionlundi 17 novembre 2003StatutMembreDernière intervention23 janvier 201625 4 mars 2013 à 21:07
Salut,
Oula, vous faites compliqué pour pas grand chose,
un tableau de n'importe quel type est un "Object"
Suffisait de faire un tableau d'Object pour y stocker les tableaux de params.
Plus besoin de convertir quoi que ce soit : Ex :
// Le tableau global
Object[] _listeParams = new Object[3];
// les tableaux de params locaux
int[] paramsInt = new int[2] { 1, 2 };
string[] paramsStr = new String[1] { "toto" };
bool[] paramsBool = new Boolean[4] { true, false, false, true };
// Stocke les différents tableaux
_listeParams[0] = paramsInt;
_listeParams[1] = paramsStr;
_listeParams[2] = paramsBool;
// recup un des tableaux de params
bool[] mesParametresBool = _listeParams[2] as bool[];
bye...
Vous n’avez pas trouvé la réponse que vous recherchez ?
izords
Messages postés20Date d'inscriptionsamedi 27 avril 2002StatutMembreDernière intervention 4 mars 2013 4 mars 2013 à 02:30
Je ne suis pas certain de comprendre ton besoin réel et pkoi tu dois retourner un array de string. Tu pourrais tout simplement retourner une List
public List Fonction()
{
int[] para01 = new int[2];
int[] para02 = new int[5];
int[] para03 = new int[4];
...
List result = new List() { para01, para02, para03 };
return result;
}
Smookii
Messages postés10Date d'inscriptionlundi 18 juin 2012StatutMembreDernière intervention29 mars 2013 4 mars 2013 à 17:34
Alors voilà j'ai essayer avec des Listes mais le problème c'est que je n'ai pas que des paramètres en int[] à retourner , j'ai des paramètre en booléen, en int, en string et en int[].
Dans ce cas à est-ce qu'il est possible de créer une liste avec plusieurs type ?
izords
Messages postés20Date d'inscriptionsamedi 27 avril 2002StatutMembreDernière intervention 4 mars 2013 4 mars 2013 à 21:20
T'as raison pour l'array d'object, c'est la méthode la plus simple, mais travailler avec un array d'object par la suite c'est beaucoup plus chiant qu'avec une classe de params déjà typé. Tu va faire quoi avec ton array d'object par la suite? faire un switch is bool, is int .... pour chaque item. C'est beaucoup plus pratique une classe:
public class ResultParams
{
public List Param01_recu { get; set; }
public List Param02_recu { get; set; }
public List Param03_recu { get; set; }
public bool ParamX { get; set; }
public int ParamY { get; set; }
.....
public ResultParams()
{
para01_recu = new List;
para02_recu = new List;
para03_recu = new List;
}
}