LINQ Aggregate Demystified: Panduan Langkah demi Langkah
Fungsi Agregat LINQ selalunya boleh menjadi punca kekeliruan. Dalam artikel ini, kami akan menyelidiki kerja dalaman Agregat dan memberikan penjelasan yang jelas dan ringkas dengan contoh dunia sebenar.
Memahami Agregat
Agregat ialah operasi yang mengulangi urutan elemen, menggunakan fungsi tertentu (ungkapan lambda) pada setiap elemen dan hasil terkumpul sebelum ini. Ia pada asasnya melakukan operasi berturut-turut pada elemen, membawa hasil perantaraan ke hadapan.
Contoh 1: Menjumlahkan Nombor
Mari kita mulakan dengan contoh mudah menjumlahkan senarai nombor :
var nums = new[] { 1, 2, 3, 4 }; var sum = nums.Aggregate((a, b) => a + b); Console.WriteLine(sum); // Output: 10
Dalam contoh ini, fungsi Agregat memulakan hasil dengan elemen pertama (1). Ia kemudian menggunakan ungkapan lambda (a b) pada hasil semasa (1) dan elemen seterusnya (2), menghasilkan 3. Proses ini diteruskan, menambah setiap elemen pada hasil sebelumnya.
Contoh 2: Mencipta CSV daripada Strings
Agregat juga boleh digunakan untuk manipulasi rentetan. Begini cara anda boleh mencipta rentetan yang dipisahkan koma daripada tatasusunan aksara:
var chars = new[] { "a", "b", "c", "d" }; var csv = chars.Aggregate((a, b) => a + "," + b); Console.WriteLine(csv); // Output: a,b,c,d
Contoh 3: Mendarab Nombor dengan Benih
Agregat menyokong beban berlebihan yang mengambil nilai benih awal untuk memulakan pengiraan. Pertimbangkan contoh berikut:
var multipliers = new[] { 10, 20, 30, 40 }; var multiplied = multipliers.Aggregate(5, (a, b) => a * b); Console.WriteLine(multiplied); // Output: 1200000
Dalam kes ini, operasi agregat bermula dengan nilai benih (5) dan menggunakan ungkapan lambda pendaraban (a * b). Setiap elemen jujukan didarab dengan hasil sebelumnya dan dibawa ke hadapan, menghasilkan keputusan akhir sebanyak 1200000.
Atas ialah kandungan terperinci Bagaimanakah Fungsi Agregat LINQ Berfungsi: Penjelasan Langkah demi Langkah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!