Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah LINQ Boleh Menggabungkan Rentetan dengan Cekap?

Bagaimanakah LINQ Boleh Menggabungkan Rentetan dengan Cekap?

Barbara Streisand
Barbara Streisandasal
2025-01-04 05:53:40560semak imbas

How Can LINQ Efficiently Concatenate Strings?

LINQ for Concatenating Strings

Dalam kod yang lebih lama, rentetan sering digabungkan menggunakan StringBuilder dalam gelung. Kaedah ini, walaupun berfungsi, boleh menjadi tidak cekap dan bertele-tele.

LINQ menawarkan alternatif yang lebih ringkas dan cekap melalui pertanyaan agregat. Untuk menggabungkan rentetan menggunakan LINQ, ikuti langkah berikut:

Pertanyaan Agregat

Pertanyaan agregat digunakan untuk mengurangkan koleksi nilai menjadi satu nilai skalar. Dalam kes ini, rentetan akan dikurangkan kepada rentetan tunggal yang digabungkan.

string[] words = { "one", "two", "three" };
var result = words.Aggregate(
    "", // Start with an empty string to handle empty lists.
    (current, next) => current + ", " + next);

Pecahan

  • Agregat: Memulakan pertanyaan, menyatakan nilai awal dan fungsi pengagregatan.
  • (semasa, seterusnya) => ...: Mentakrifkan fungsi pengagregatan yang menggabungkan setiap rentetan dengan pembatas ke dalam rentetan semasa.
  • semasa ", " seterusnya: Menggabungkan pembatas dan rentetan seterusnya kepada rentetan semasa.

Hasil

Melaksanakan pertanyaan ini output:

one, two, three

Alternatif Menggunakan StringBuilder

Walaupun pertanyaan agregat adalah ciri LINQ serba boleh, String.Join menawarkan pilihan yang lebih berprestasi untuk menggabungkan sejumlah besar rentetan:

string result = String.Join(", ", words);

Atas ialah kandungan terperinci Bagaimanakah LINQ Boleh Menggabungkan Rentetan dengan 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