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# ?

6voto

l33t Points 2845

C'est comme ça qu'on fait en 2020 :

var s = "ABCDEFGH";
var first5 = s.AsSpan(0, 5);

A Span<T> pointe directement vers la mémoire de la chaîne, évitant ainsi d'allouer une chaîne temporaire. Bien entendu, toute méthode ultérieure demandant un string nécessite une conversion :

Console.WriteLine(first5.ToString());

Bien que, de nos jours, beaucoup .NET Les API autorisent l'utilisation d'intervalles. Respectez-les si possible !

Note : Si le ciblage .NET Framework ajouter une référence à la System.Memory mais n'attendez pas les mêmes performances.

4voto

AndrewE Points 1001

Sur C# 8.0 vous pouvez obtenir les cinq premiers caractères d'une chaîne de caractères comme suit

string str = data[0..5];

Voici quelques informations supplémentaires sur Indices et fourchettes

3voto

saleem kalro Points 443

Pour obtenir le nombre n de premiers caractères d'une chaîne de caractères en C#

String yourstring="Some Text";  
String first_n_Number_of_Characters=yourstring.Substring(0,n);

2voto

Peter Points 5678

Voici une méthode d'extension qui vérifie si une chaîne de caractères est plus grande que ce qui est nécessaire et raccourcit la chaîne de caractères au nombre maximum défini et ajoute '...'.

public static class StringExtensions
{
    public static string Ellipsis(this string s, int charsToDisplay)
    {
        if (!string.IsNullOrWhiteSpace(s))
            return s.Length <= charsToDisplay ? s : new string(s.Take(charsToDisplay).ToArray()) + "...";
        return String.Empty;
    }
}

2voto

Saket Yadav Points 185

Veuillez essayer ce code lorsque str est inférieur à 5.

string strModified = str.Substring(0,str.Length>5?5:str.Length);

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