Heim >Backend-Entwicklung >C++ >Wie kann ich den ersten Buchstaben einer Zeichenfolge in C# mit optimaler Leistung großschreiben?

Wie kann ich den ersten Buchstaben einer Zeichenfolge in C# mit optimaler Leistung großschreiben?

Susan Sarandon
Susan SarandonOriginal
2025-01-16 13:44:00549Durchsuche

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

Effiziente Großschreibung des ersten Buchstabens der C#-Zeichenfolge

Einführung

Die Großschreibung des ersten Buchstabens einer Zeichenfolge ist in vielen Programmieranwendungen eine häufige Aufgabe. Um die Leistung zu optimieren, ist es entscheidend, eine effiziente Methode zu wählen. Dieser Artikel untersucht verschiedene Möglichkeiten zur Implementierung der Groß- und Kleinschreibung in C# und konzentriert sich auf die Analyse ihrer Leistungsunterschiede.

Codebeispiel

C# 8, .NET Core 3.0 oder .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>

Alte Version (nicht empfohlen, schlechte Leistung)

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

Leistungsüberlegungen

Unter diesen Codefragmenten weist die Methode mit der geringsten Speicherzuweisung und der effizientesten Zeichenfolgenmanipulation die beste Leistung auf. Die erste Lösung verwendet ReadonlySpan<char> von .NET Core 3.0 oder .NET Standard 2.1, was im Vergleich zu anderen Methoden eine bessere Leistung bietet.

Das obige ist der detaillierte Inhalt vonWie kann ich den ersten Buchstaben einer Zeichenfolge in C# mit optimaler Leistung großschreiben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn