222 votes

C# : comment obtenir le premier caractère d'une chaîne de caractères ?

Est-ce que le premier char d'une chaîne de caractères en procédant comme suit ?

MyString.ToCharArray[0]

4 votes

Qu'avez-vous appris en l'essayant ?

1 votes

@Michael : Il y avait une erreur de compilation. Comment utiliser ToCharArray si ce n'est pas de cette façon ?

3 votes

Pour mémoire, ToCharArray es un méthode vous devez d'abord l'exécuter, par exemple char[] chars = str.ToCharArray(); et ensuite utiliser char first = chars[0]; . Vous pouvez également le dépecer en str.ToCharArray()[0]; . Dans tous les cas, vérifiez que la chaîne de caractères n'est pas nulle et qu'elle comporte au moins un caractère - vous pouvez le faire en utilisant la commande if(!String.IsNullOrEmpty(str)) .

444voto

Matthew Flaschen Points 131723

Juste MyString[0] . Cela utilise le Chaînes de caractères indexeur.

65voto

aqwert Points 4802

Mystring[0] devrait être suffisant

61 votes

Je n'aurais pas dû passer ces cinq secondes supplémentaires à taper les mots "devrait être suffisant".

0 votes

Qui a répondu à cette question en premier ?

0 votes

Sélectionnez l'onglet le plus ancien pour voir qu'il s'agit de Matthew.

22voto

Jon Hanna Points 40291

La différence entre MyString[0] y MyString.ToCharArray()[0] est que le premier traite la chaîne de caractères comme un tableau en lecture seule, tandis que le second traite la chaîne de caractères comme un tableau en lecture seule. ToCharArray() crée un nouveau tableau. La première méthode sera plus rapide (et plus facile) pour presque tous les cas où elle fonctionnera, mais ToCharArray peut être nécessaire si vous avez une méthode qui doit accepter un tableau, ou si vous voulez changer le tableau.

Si la chaîne n'est pas connue pour être non nulle et non vide, vous pouvez le faire :

string.IsNullOrEmpty(MyString) ? (char?)null : MyString[0]

qui renvoie un char? de null ou du premier caractère de la chaîne, selon le cas.

0 votes

Merci de le mentionner char? comme un moyen d'inclure la possibilité "il n'y a pas de premier caractère".

10voto

james_bond Points 2592

Ou vous pouvez faire ça :

MyString[0];

6 votes

@Robert, non, je veux le voir encore une fois, juste pour être sûr !

1 votes

Je n'ai juste pas vu celles avant la mienne :)

1 votes

Pas d'inquiétude. Je le fais tout le temps aussi. Je tape vraiment lentement.

6voto

Nayan Points 1817
Je pense que vous cherchez ceci MyString.ToCharArray()[0]

)

Mais vous pouvez utiliser MyString[0] aussi.

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