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>
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>
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>
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>
<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>
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!