Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Kaedah Agregat LINQ Boleh Digunakan untuk Penggabungan Rentetan yang Cekap?

Bagaimanakah Kaedah Agregat LINQ Boleh Digunakan untuk Penggabungan Rentetan yang Cekap?

Patricia Arquette
Patricia Arquetteasal
2025-01-03 20:14:41247semak imbas

How Can LINQ's Aggregate Method Be Used for Efficient String Concatenation?

Menggabungkan Rentetan dengan LINQ

Kaedah tradisional untuk menggabungkan rentetan melibatkan penggunaan StringBuilder dan menambahkan setiap rentetan dalam gelung. Walau bagaimanapun, untuk pendekatan yang lebih cekap, LINQ menawarkan pertanyaan agregat.

Pertanyaan agregat ialah fungsi yang mengambil koleksi nilai dan mengembalikan nilai skalar. Menggunakan notasi titik, anda boleh memanggil pertanyaan agregat pada objek IEnumerable.

Untuk menggabungkan rentetan dengan LINQ, anda boleh menggunakan kaedah Agregat seperti berikut:

string[] words = { "one", "two", "three" };
string res = words.Aggregate(
    "", // Start with an empty string for empty list handling
    (current, next) => current + ", " + next);

Kod ini menjana output berikut:

, one, two, three

Adalah penting untuk ambil perhatian bahawa pertanyaan agregat adalah dilaksanakan serta merta. Untuk prestasi optimum dengan jujukan yang besar, pertimbangkan untuk menggunakan String.Join sebaliknya.

Sebagai alternatif, jika anda ingin menggunakan Aggregate, anda boleh memanfaatkan StringBuilder untuk prestasi yang lebih baik:

var res = words.Aggregate(
    new StringBuilder(), 
    (current, next) => current.Append(current.Length == 0? "" : ", ").Append(next));

Atas ialah kandungan terperinci Bagaimanakah Kaedah Agregat LINQ Boleh Digunakan untuk Penggabungan Rentetan yang Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn