C# 文字列の最初の文字を効率的に大文字にします
はじめに
文字列の最初の文字を大文字にすることは、多くのプログラミング アプリケーションで一般的なタスクです。パフォーマンスを最適化するには、効率的な方法を選択することが重要です。この記事では、C# で大文字化を実装するいくつかの方法を検討し、それらのパフォーマンスの違いの分析に焦点を当てます。
コード例
C# 8、.NET Core 3.0 または .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>
古いバージョン (非推奨、パフォーマンスが悪い)
<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>
パフォーマンスに関する考慮事項
これらのコード スニペットの中で、メモリ割り当てが最も少なく、文字列操作が最も効率的なメソッドが最高のパフォーマンスを発揮します。最初のソリューションでは、.NET Core 3.0 または .NET Standard 2.1 の ReadonlySpan<char>
を使用します。これにより、他の方法と比べて優れたパフォーマンスが得られます。
以上が最適なパフォーマンスで C# の文字列の最初の文字を大文字にするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。