J'ai besoin d'un moyen simple de convertir un List<int>
en un tableau string
.
J'ai:
var the_list = new List<int>();
the_list.Add(1);
the_list.Add(2);
the_list.Add(3);
string[] the_array = new string[the_list.Count];
for(var i = 0 ; i < the_array.Count; ++i)
the_array[i] = the_list[i].ToString();
... qui a l'air d'être très moche pour moi.
Y a-t-il un moyen plus facile?
Remarque: Je recherche un plus facile moyen - pas nécessairement un moyen plus rapide.
Utilisez LINQ:
string[] the_array = the_list.Select(i => i.ToString()).ToArray();
Désolé, je n'ai pas installé .NET sur cette machine, donc totalement non testé:
var theList = new List<int>() { 1, 2, 3 };
var theArray = theList.Select(e => e.ToString()).ToArray(); // Lambda Form
var theArray = (from e in theList select e.ToString()).ToArray(); // Query Form
Je sais que vous avez une bonne réponse, mais vous n'avez pas besoin de LINQ ou de Select. Vous pouvez le faire avec un ConvertAll et une méthode anonyme. Comme ça:
var list = new List<int>();
....
var array = list.ConvertAll( x => x.ToString() ).ToArray();
Idée similaire, mais je pense que ce n'est pas linq. au cas où ça compte.
La liste a une méthode ToArray (). Cela vous évitera de taper mais ne sera probablement pas plus efficace.
Étant donné que votre liste ne comporte qu'un nombre, vous pouvez facilement les convertir en chaîne. Créez simplement une boucle et convertissez ses membres en chaîne.
string[] the_array = new string[the_list.Count];
int i=0;
foreach(var item in the_list)
{
the_array[i] = item.ToString();
i++;
}