Rumah >pembangunan bahagian belakang >C++ >Apakah Cara Terpantas untuk Mengulangi Watak dalam C#?
Dalam C#, terdapat pelbagai pendekatan untuk mencipta rentetan yang terdiri daripada aksara berulang. Untuk menentukan kaedah yang paling cekap dan sesuai, mari kita mendalami pilihan:
Versi LINQ:
private string Tabs(uint numTabs) { IEnumerable<string> tabs = Enumerable.Repeat("\t", (int) numTabs); return (numTabs > 0) ? tabs.Aggregate((sum, next) => sum + next) : ""; }
Walaupun pendekatan LINQ ringkas, ia memperkenalkan overhed yang tidak perlu disebabkan oleh penggunaan operasi LINQ (Ulang, Agregat).
Versi StringBuilder:
private string Tabs(uint numTabs) { StringBuilder sb = new StringBuilder(); for (uint i = 0; i < numTabs; i++) sb.Append("\t"); return sb.ToString(); }
Pendekatan StringBuilder adalah mudah tetapi mungkin perlahan sedikit berbanding pilihan lain disebabkan oleh peruntukan memori untuk objek StringBuilder .
String Versi:
private string Tabs(uint numTabs) { string output = ""; for (uint i = 0; i < numTabs; i++) { output += '\t'; } return output; }
Versi rentetan adalah asas dan tidak memerlukan sebarang kejadian kelas tambahan. Ini adalah pilihan yang baik apabila kesederhanaan dan kecekapan diutamakan.
Penyelesaian Dioptimumkan:
Untuk mengoptimumkan lagi versi rentetan, pertimbangkan untuk menggunakan sintaks berikut:
static string Tabs(int n) { return new string('\t', n); }
Sintaks ini menghapuskan keperluan untuk gelung dan menyediakan cara langsung dan cekap untuk menjana rentetan panjang yang diingini yang mengandungi yang ditentukan watak.
Kesimpulan:
Pilihan optimum antara pilihan ini bergantung pada keperluan khusus permohonan anda. Untuk senario kritikal prestasi, versi rentetan yang dioptimumkan atau sintaks rentetan baharu adalah disyorkan. Untuk senario asas di mana kesederhanaan dan kebolehbacaan adalah penting, versi rentetan asas adalah sesuai.
Atas ialah kandungan terperinci Apakah Cara Terpantas untuk Mengulangi Watak dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!