Cara menggunakan ungkapan lambda dalam C #

Ungkapan lambda pertama kali diperkenalkan di .NET 3.5, pada masa yang sama bahawa Bahasa Bersepadu Query (LINQ) tersedia. Ungkapan lambda seperti kaedah tanpa nama tetapi dengan lebih banyak fleksibiliti. Semasa menggunakan ungkapan lambda, anda tidak perlu menentukan jenis input. Oleh itu, ungkapan lambda memberikan cara yang lebih pendek dan bersih untuk mewakili kaedah tanpa nama.

Dalam artikel ini, kita akan melihat bagaimana kita dapat menggunakan ungkapan lambda di C #. Untuk bekerja dengan contoh kod yang disediakan dalam artikel ini, anda harus memasang Visual Studio 2019 di sistem anda. Sekiranya anda belum mempunyai salinannya, anda boleh memuat turun Visual Studio 2019 di sini. 

Buat projek aplikasi konsol di Visual Studio

Pertama, mari buat projek aplikasi konsol .NET Core di Visual Studio. Dengan mengandaikan Visual Studio 2019 dipasang di sistem anda, ikuti langkah-langkah yang digariskan di bawah untuk membuat projek aplikasi konsol .NET Core baru di Visual Studio.

  1. Lancarkan ID Studio Visual.
  2. Klik pada "Buat projek baru."
  3. Di tetingkap "Buat projek baru", pilih "Aplikasi Konsol (.NET Core)" dari senarai templat yang dipaparkan.
  4. Klik Seterusnya. 
  5. Di tetingkap "Konfigurasikan projek baru anda" yang ditunjukkan di sebelah, tentukan nama dan lokasi untuk projek baru.
  6. Klik Buat.

Mengikuti langkah-langkah ini akan menghasilkan projek aplikasi konsol .NET Core yang baru di Visual Studio 2019. Kami akan menggunakan projek ini untuk bekerja dengan ekspresi C # lambda di bahagian seterusnya artikel ini.

Anatomi ungkapan Lambda

Pada dasarnya ungkapan lambda adalah kaedah yang tidak mempunyai deklarasi. Dengan kata lain, ungkapan lambda adalah kaedah yang tidak mempunyai penentu akses atau nama. Ungkapan lambda boleh dibahagikan kepada dua bahagian - bahagian kiri dan bahagian kanan. Bahagian kiri digunakan untuk input, dan bahagian kanan digunakan untuk menulis ekspresi.

Berikut adalah sintaks untuk menggunakan ungkapan lambda dalam C #.

(Parameter input) => Blok ekspresi atau pernyataan

Anda boleh mempunyai dua jenis ungkapan lambda, lambda ungkapan dan lambda pernyataan. Ungkapan lambda terdiri daripada input di sebelah kiri dan ungkapan di sebelah kanan, seperti yang ditunjukkan di bawah.

input => ungkapan;

Lambda pernyataan terdiri daripada input di sebelah kiri dan sekumpulan pernyataan di sebelah kanan, seperti yang ditunjukkan di bawah.

input => {pernyataan};

Contoh ungkapan lambda dalam C #

Menulis ungkapan lambda mudah - anda hanya perlu mengeluarkan kata kunci delegasi dan jenis parameter dari kaedah tanpa nama. Pertimbangkan kaedah anonim berikut yang menggunakan kata kunci delegasi dan juga jenis parameter.

perwakilan (Pengarang a) {return a.IsActive && a.NoOfBooksAuthored> 10; }

Pernyataan di atas boleh ditukar menjadi ungkapan lambda seperti yang ditunjukkan dalam coretan kod yang diberikan di bawah.

(a) => {a.IsActive && a.NoOfBooksAuthored> 10; }

Dalam pernyataan di atas aadalah parameter dan =>merupakan operator lambda. Pernyataan berikut adalah ungkapan.

a.IsActive && a.NoOfBooksAuthored> 10;

Berikut adalah contoh lain ungkapan lambda yang memaparkan nombor ganjil antara 1 dan 9 di tetingkap konsol.

Senarai bilangan bulat = Senarai baru {1, 2, 3, 4, 5, 6, 7, 8, 9};

foreach (int num dalam bilangan bulat. Di mana (n => n% 2 == 1). Daftar Terhad ()

{

  Console.WriteLine (num);

}

Ungkapan lambda dengan dan tanpa parameter

Ungkapan lambda boleh tanpa parameter atau mempunyai satu atau lebih parameter. Coretan kod berikut menggambarkan ungkapan lambda yang tidak mempunyai parameter.

() => Console.WriteLine ("Ini adalah ungkapan lambda tanpa parameter");

Ungkapan lambda juga boleh mempunyai satu atau lebih parameter. Coretan kod berikut menggambarkan bagaimana anda boleh meneruskan satu parameter ke ungkapan lambda.

(a, numberOfBooksAuthored) => a.NoOfBooksAuthored> = numberOfBooksAuthored;

Anda juga dapat menentukan jenis parameter dalam ekspresi lambda, seperti yang ditunjukkan dalam potongan kode yang diberikan di bawah.

(a, int numberOfBooksAuthored) => a.NoOfBooksAuthored> = numberOfBooksAuthored;

Anda bahkan boleh menentukan beberapa pernyataan dalam ungkapan lambda menggunakan pendakap keriting. Ini ditunjukkan dalam coretan kod berikut. 

(a, 10) =>

{

   Console.WriteLine ("Ini adalah contoh ungkapan lambda

                      dengan pelbagai pernyataan ");

   pulangkan a.NoOfBooksAuthored> = 10;

}

Penyataan lambdas dalam C #

Penyataan lambda menggunakan sintaks yang serupa dengan ungkapan lambdas. Perbezaannya adalah bahawa, daripada mempunyai ekspresi di sebelah kanan operator, pernyataan lambda mempunyai blok kod yang merangkumi satu atau lebih pernyataan.

Coretan kod berikut menggambarkan bagaimana anda dapat memanfaatkan lambda penyataan untuk memaparkan nombor genap antara 1 dan 9 di tetingkap konsol.

int [] integer = baru [] {1, 2, 3, 4, 5, 6, 7, 8, 9};

foreach (int i dalam bilangan bulat. Di mana (x =>

{

   jika (x% 2 == 0)

         kembali benar;

    kembali palsu;

 }

 ))

Console.WriteLine (i);

Ungkapan lambda adalah ciri hebat dalam .NET dan .NET Core yang memberikan cara yang lebih pendek untuk mewakili kaedah tanpa nama. Ungkapan lambda boleh mempunyai parameter sifar atau satu atau lebih. Anda bahkan boleh menetapkan ungkapan lambda kepada delegasi Func, Action, atau Predicate. Dalam artikel yang akan datang di sini, kita akan meneroka ini dan ciri-ciri lain dari ungkapan lambda. Kami juga akan meneroka bagaimana kami dapat bekerja dengan ungkapan lambda dan LINQ serta lambda async.

Cara melakukan lebih banyak perkara di C #:

  • Bilakah menggunakan kelas abstrak vs antara muka dalam C #
  • Cara bekerja dengan AutoMapper di C #
  • Cara menggunakan ungkapan lambda dalam C #
  • Cara bekerjasama dengan delegasi Action, Func, dan Predicate di C #
  • Cara bekerja dengan perwakilan di C #
  • Cara melaksanakan pembalak sederhana di C #
  • Cara bekerja dengan atribut di C #
  • Cara bekerja dengan log4net di C #
  • Cara melaksanakan corak reka bentuk repositori di C #
  • Cara bekerja dengan refleksi di C #
  • Cara bekerja dengan pemantau sistem fail di C #
  • Cara melakukan inisial malas di C #
  • Cara bekerja dengan MSMQ di C #
  • Cara bekerja dengan kaedah peluasan di C #
  • Bagaimana untuk kami ungkapan lambda dalam C #
  • Bilakah menggunakan kata kunci tidak stabil dalam C #
  • Cara menggunakan kata kunci hasil dalam C #
  • Cara melaksanakan polimorfisme dalam C #
  • Bagaimana membina penjadual tugas anda sendiri di C #
  • Cara bekerja dengan RabbitMQ di C #
  • Cara bekerja dengan tuple di C #
  • Meneroka kaedah maya dan abstrak dalam C #