Menggunakan huruf besar rentetan C# dengan cekap
Pengenalan
Memodalan huruf pertama rentetan adalah tugas biasa dalam banyak aplikasi pengaturcaraan. Untuk mengoptimumkan prestasi, adalah penting untuk memilih kaedah yang cekap. Artikel ini meneroka beberapa cara untuk melaksanakan penggunaan huruf besar dalam C# dan memfokuskan pada menganalisis perbezaan prestasi mereka.
Contoh Kod
C# 8, .NET Core 3.0 atau .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>
Versi lama (tidak disyorkan, prestasi lemah)
<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>
Pertimbangan Prestasi
Antara coretan kod ini, kaedah dengan peruntukan memori paling sedikit dan manipulasi rentetan paling cekap mempunyai prestasi terbaik. Penyelesaian pertama menggunakan ReadonlySpan<char>
daripada .NET Core 3.0 atau .NET Standard 2.1, yang memberikan prestasi unggul berbanding kaedah lain.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Huruf Pertama Rentetan dalam C# dengan Prestasi Optimum?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!