Maison > développement back-end > C++ > Comment puis-je mettre en majuscule la première lettre d'une chaîne en C# avec des performances optimales ?

Comment puis-je mettre en majuscule la première lettre d'une chaîne en C# avec des performances optimales ?

Susan Sarandon
Libérer: 2025-01-16 13:44:00
original
544 Les gens l'ont consulté

How Can I Capitalize the First Letter of a String in C# with Optimal Performance?

Mise en majuscule efficacement la première lettre de la chaîne C#

Présentation

La mise en majuscule de la première lettre d'une chaîne est une tâche courante dans de nombreuses applications de programmation. Afin d’optimiser les performances, il est crucial de choisir une méthode efficace. Cet article explore plusieurs façons d’implémenter la capitalisation en C# et se concentre sur l’analyse de leurs différences de performances.

Exemple de code

C# 8, .NET Core 3.0 ou .NET Standard 2.1

<code class="language-csharp">public static string FirstCharToUpper(this string input) =>
    input switch
    {
        null => throw new ArgumentNullException(nameof(input)),
        "" => throw new ArgumentException($"{nameof(input)} cannot be empty", nameof(input)),
        _ => string.Concat(input[0].ToString().ToUpper(), input.AsSpan(1))
    };</code>
Copier après la connexion

C#8

<code class="language-csharp">public static string FirstCharToUpper(this string input) =>
    input switch
    {
        null => throw new ArgumentNullException(nameof(input)),
        "" => throw new ArgumentException($"{nameof(input)} cannot be empty", nameof(input)),
        _ => input[0].ToString().ToUpper() + input.Substring(1)
    };</code>
Copier après la connexion

C#7

<code class="language-csharp">public static string FirstCharToUpper(this string input)
{
    switch (input)
    {
        case null: throw new ArgumentNullException(nameof(input));
        case "": throw new ArgumentException($"{nameof(input)} cannot be empty", nameof(input));
        default: return input[0].ToString().ToUpper() + input.Substring(1);
    }
}</code>
Copier après la connexion

Ancienne version (déconseillée, performances médiocres)

<code class="language-csharp">public static string FirstCharToUpper(string input)
{
    if (String.IsNullOrEmpty(input))
        throw new ArgumentException("ARGH!");
    return input.First().ToString().ToUpper() + String.Join("", input.Skip(1));
}</code>
Copier après la connexion
<code class="language-csharp">public static string FirstCharToUpper(string input)
{
    if (String.IsNullOrEmpty(input))
        throw new ArgumentException("ARGH!");
    return input.First().ToString().ToUpper() + input.Substring(1);
}</code>
Copier après la connexion

Considérations relatives aux performances

Parmi ces extraits de code, la méthode avec le moins d'allocation de mémoire et la manipulation de chaînes la plus efficace a les meilleures performances. La première solution utilise ReadonlySpan<char> de .NET Core 3.0 ou .NET Standard 2.1, qui offre des performances supérieures par rapport aux autres méthodes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal