238 votes

Le moyen le plus rapide pour supprimer le premier caractère dans une chaîne

Disons que nous avons la chaîne suivante

string data= "/temp string";

Si nous voulons supprimer le premier caractère / on peut faire beaucoup de différentes façons :

data.Remove(0,1);
data.TrimStart('/');
data.Substring(1);

Mais .. vraiment je ne sais pas qui on le meilleur algorithme et de le faire plus vite ..
Est-il celui qui est le meilleur ou tous sont les mêmes ?

166voto

Jon Skeet Points 692016

La deuxième option n'est pas vraiment la même que les autres, si la chaîne est "///foo", il deviendra "foo" au lieu de "//foo".

La première option a besoin d'un peu plus de travail pour comprendre que la troisième, je voudrais afficher l' Substring option la plus commune et lisible.

(Évidemment, chacun d'eux comme une déclaration individuelle de ne pas faire quelque chose d'utile, vous aurez besoin d'affecter le résultat à une variable, éventuellement, data lui-même.)

Je ne voudrais pas prendre en compte la performance à prendre en compte, sauf s'il a été fait en train de devenir un problème pour vous - dans ce cas, la seule façon, vous savez ce pourrait être le cas de test, et puis il est facile de les exécuter des cas de test pour chaque option, et de comparer les résultats. Je m'attends Substring à être probablement le plus rapide ici, tout simplement parce qu' Substring finit toujours par la création d'une chaîne à partir d'un seul morceau de l'entrée d'origine, alors qu' Remove a au moins potentiellement, collez-les ensemble un début de morceau et la fin du morceau.

9voto

Marcelo Cantos Points 91211

Je suppose qu' Remove et Substring serait égalité pour la première place, puisqu'ils engloutissent une taille fixe partie de la chaîne, alors que TrimStart procède à une analyse à partir de la gauche avec un test sur chaque personnage et ensuite effectuer exactement le même travail que les deux autres méthodes. Sérieusement, si, c'est le fractionnement des poils.

6voto

Stefan Kendall Points 28274

Vous pourriez profil, si vous avez vraiment pris en charge. Écrire une boucle de nombreuses itérations et de voir ce qui se passe. Les Chances sont, cependant, que ce n'est pas le goulot d'étranglement dans votre application, et TrimStart semble le plus sémantiquement correct. S'efforcer d'écrire du code lisible avant de les optimiser.

Prograide.com

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.

Powered by:

X