181 votes

Comment obtenir les cinq premiers caractères d'une chaîne de caractères ?

J'ai lu ceci question pour obtenir le premier caractère de la chaîne. Existe-t-il un moyen d'obtenir les n premiers caractères d'une chaîne de caractères en C# ?

2voto

Ignacio Calvo Points 336

En C# 8, vous pouvez utiliser Opérateurs de gamme . Afin d'éviter l'exception si votre chaîne originale est plus courte que la longueur désirée, vous pouvez utiliser Math.Min :

string newString = oldstring[..Math.Min(oldstring.Length, 5)];

Bien sûr, si vous savez que la chaîne originale est plus longue, vous pouvez l'optimiser :

string newString = oldstring[..5];

1voto

Spegeli Points 21

J'utilise :

var firstFive = stringValue?.Substring(0, stringValue.Length >= 5 ? 5 : customAlias.Length);

ou une alternative si vous voulez vérifier les espaces blancs aussi (au lieu de seulement Null) :

var firstFive = !String.IsNullOrWhiteSpace(stringValue) && stringValue.Length >= 5 ? stringValue.Substring(0, 5) : stringValue

1voto

sjokkogutten Points 1666

Ou vous pouvez utiliser String.ToCharArray() .
Il faut int startindex et et int length comme paramètres et renvoie un char[]

new string(stringValue.ToCharArray(0,5))

Vous devez toujours vous assurer que la chaîne de caractères a la longueur appropriée, sinon un message d'erreur sera généré. ArgumentOutOfRangeException

0voto

Yasir Iqbal Points 1

Si nous ne voulons que les 5 premiers caractères d'un champ, nous pouvons le faire en utilisant l'attribut gauche.

Vessel = f.Vessel !=null ? f.Vessel.Left(5) : ""

0voto

Jiří Herník Points 700

C'est ce que j'utilise, il n'y a pas de problème avec les chaînes de caractères inférieures aux caractères requis.

private string TakeFirstCharacters(string input, int characterAmount)
{
    return input?.Substring(0, Math.Min(input.Length, characterAmount));
}

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