string strArr="5,3,8,1,9,2,0,6,4,7";
J'aimerais réorganiser l'ordre des nombres pour que le résultat ressemble à ce qui suit :
string result ="0,1,2,3,4,5,6,7,8,9";
Une idée ?
string strArr="5,3,8,1,9,2,0,6,4,7";
J'aimerais réorganiser l'ordre des nombres pour que le résultat ressemble à ce qui suit :
string result ="0,1,2,3,4,5,6,7,8,9";
Une idée ?
Diviser, trier et joindre :
string[] nums = strArr.Split(',');
Array.Sort(nums);
string result = String.Join(",", nums);
Ou bien :
string result =
String.Join(",",
strArr.Split(',')
.OrderBy(s => s)
.ToArray()
);
Si vous avez une chaîne contenant des nombres plus importants qui doivent être triés numériquement, vous ne pouvez pas les trier en tant que chaînes, comme par exemple "2" > "1000". Vous devez convertir chaque sous-chaîne en un nombre, les trier, puis les reconvertir :
string result =
String.Join(",",
strArr
.Split(',')
.Select(s => Int32.Parse(s))
.OrderBy(n => n)
.Select(n => n.ToString())
.ToArray()
);
Ou, comme l'a suggéré mastoj, analyser les chaînes de caractères dans le tri :
string result =
String.Join(",",
strArr
.Split(',')
.OrderBy(s => Int32.Parse(s))
.ToArray()
);
Vous pouvez créer un string
avec le tableau string.split(char[])
méthode.
Avec ce tableau, vous pouvez appeler la fonction Array.Sort(T)
qui triera les éléments par ordre numérique croissant (pour votre exemple).
Avec ce tableau trié, vous pouvez appeler la fonction String.Join(string, object[])
pour en faire à nouveau une ficelle.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.