Rumah > Artikel > pembangunan bahagian belakang > C# Lambda Expression
Ungkapan Lambda dalam C# ialah fungsi tanpa nama, yang mengandungi sama ada ungkapan atau sekumpulan pernyataan dan pengendali yang digunakan untuk melaksanakan Ungkapan Lambda ialah '=>'. Ungkapan Lambda terdiri daripada dua bahagian, di mana bahagian kiri adalah input manakala bahagian sebelah kanan ialah ungkapan. Ungkapan Lambda Mudah mengambil hujah dan mengembalikan nilai dan salah satu senario yang paling biasa untuk menggunakan ungkapan lambda akan disenaraikan.
Sekarang kita telah memahami apa itu Ungkapan Lambda dalam C#, mari kita fahami sintaks standard untuk melaksanakan ungkapan tersebut. Dengan Lambda Expression, kami mempunyai dua sintaks untuk dua jenis:
Sintaks:
input => expression;
Sintaks:
input => { statements };
Berdasarkan situasi, pembangun bebas memilih yang sesuai dengan keperluan mereka.
Apabila kami melaksanakan Ungkapan Lambda, kami mempunyai dua sisi dan Simbol Lambda => di antara. Bahagian kiri mengambil input, apa-apa jenis manakala bahagian kanan mengambil ungkapan atau pernyataan. Dalam C#, Lambda Expression melaksanakan ciri, yang membolehkan pengkompil kami membuat kesimpulan jenis pembolehubah berdasarkan konteksnya. Ciri ini dipanggil ciri inferens jenis. Kita boleh menghantar fungsi kepada panggilan kaedah, sebagai hujah.
Setiap ungkapan lambda dipetakan secara dalaman kepada antara muka. Sekarang apabila kita melaksanakan program dengan Lambda Expression, pengkompil menentukan antara muka yang akan diberikan, berdasarkan konteks ungkapan, semuanya berlaku pada masa penyusunan. Ungkapan ini ialah kaedah tanpa nama, bermaksud kaedah tanpa nama dan dilaksanakan dengan antara muka berfungsi.
Contoh: Sekarang mari kita mulakan dengan pelaksanaan ungkapan lambda. Untuk program pertama kami, kami akan melaksanakan ungkapan lambda dalam bentuk mudah, di mana kami menggunakan kelas yang ditentukan pengguna dan contoh kedua kami akan menjadi agak mudah di mana kami akan menemui kejadian pertama nombor ganjil dalam senarai. Jadi, mari mulakan.
Kod:
using System; using System.Collections.Generic; using System.Linq; class City_Details { public int cityCode { get; set; } public string cityName { get; set; } } class det { public static void Main(string[] args) { List<City_Details> details = new List<City_Details>() { new City_Details{ cityCode = 1, cityName = "Mumbai" }, new City_Details{ cityCode = 2, cityName = "Chennai" }, new City_Details{ cityCode = 3, cityName = "Pune" }, new City_Details{ cityCode = 4, cityName = "Ahmedabad" }, new City_Details{ cityCode = 5, cityName = "Delhi" } }; var newDetails = details.OrderBy(x => x.cityName); foreach(var value in newDetails) { Console.WriteLine(value.cityCode + " " + value.cityName); } } }
Penjelasan Kod: Selepas mengimport fail sistem, kami mencipta kelas dengan dua sifat sebagai kod bandar dan cityName. Kemudian kami mempunyai det kelas kami, dengan fungsi utama dan lain-lain. Di sini kami memanggil kelas pertama kami dan menetapkan kod dan nama bandar dalam bentuk senarai. Kemudian kami menyenaraikan senarai butiran kami, mengikut susunan, menggunakan OrderBy dan di sini kami melaksanakan ungkapan lambda. Memandangkan kami telah menyenaraikan data dalam senarai yang mengikut nama bandar, kami memasukkan gelung foreach dan mencetak setiap baris seterusnya. Jika dilaksanakan tanpa sebarang ralat, kod ini akan mencetak senarai, tetapi berbeza, bermakna Ahmedabad, yang bermula dengan A akan dicetak dahulu dan Pune pergi ke bahagian bawah. Rujuk tangkapan skrin output yang dilampirkan di bawah:
Seperti yang anda lihat, output kami adalah seperti yang dijangkakan, mengikut abjad. Sekarang, beralih kepada contoh kedua kami, kami mempunyai senarai nombor mudah, yang terdiri daripada nombor ganjil dan genap. Jadi mari kita fahami dan laksanakan program kedua kita.
Kod:
using System; using System.Collections.Generic; class ExampleTwo { static void Main() { List<int> newList = new List<int>() { 10, 21, 31, 40 }; int oddNumber = newList.FindIndex(x => x % 2 != 0); Console.WriteLine( "\n " + oddNumber); } }
Penjelasan Kod: Ini ialah contoh termudah kami bagi Pelaksanaan Ungkapan Lambda, di mana kami hanya menggunakan Ungkapan Senarai dan Lambda. Bermula kami Sistem fail, kemudian kelas ContohTwo kami dengan utama. Kami kemudiannya memulakan Senarai Integer kami dan dalam senarai kami, kami mempunyai empat nombor. Ini adalah dua nombor ganjil dan dua nombor genap. Seterusnya, kami mempunyai pembolehubah integer kami, di mana kami menggunakan FindIndex dan di sinilah kami menggunakan Lambda Expression. Dalam FindIndex, kita mempunyai x, sebagai input dan output kita akan menjadi nombor yang tidak boleh dibahagikan dengan nombor 2. Selepas matematik ini, kita akan mempunyai indeks nombor ganjil kita. Dan akhirnya kita mempunyai penyataan output kami, yang akan mengembalikan nombor indeks kejadian pertama nombor ganjil. Rujuk tangkapan skrin output yang dilampirkan di bawah:
Seperti yang kita fahami dalam penjelasan kod, output kita ialah nombor indeks nombor ganjil dan bukan nombor ganjil itu sendiri. Jadi di sini, kita ada 1 iaitu indeks 21.
Sekarang kita telah mempelajari hampir segala-galanya tentang The Lambda Expression dalam C#, kita perlu memahami faedah menggunakannya. Salah satu kelebihan utama ialah keupayaan untuk menggunakan semula kod, maka kami mempunyai kebolehbacaan yang lebih baik. Dengan tidak menentukan jenis input, ia adalah salah satu fungsi yang paling fleksibel.
Salah satu faedahnya ialah keupayaan untuk menulis kaedah untuk ungkapan lambda, di mana sahaja kita mahu menggunakannya. Ini adalah yang terbaik apabila kita perlu mencipta dan menggunakan kaedah sekali sahaja. Dengan cara ini banyak usaha kita disimpan, di mana kita tidak perlu mengisytiharkan dan menulis kaedah yang berasingan.
Ungkapan lambda dalam mana-mana bahasa pengaturcaraan boleh menjadi kegunaan utama. Dalam C#, Lambda Expression berfungsi sebagai ungkapan tanpa nama, di mana is mempunyai input di sebelah kiri dan ungkapan atau senarai pernyataan di sebelah kanan. Ungkapan Lambda dilambangkan dengan “=>”. Fleksibiliti untuk mempunyai apa-apa jenis input itulah yang menjadikannya berguna kepada pembangun.
Atas ialah kandungan terperinci C# Lambda Expression. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!