Cara menggunakan ekspresi lambda di C #

Ekspresi Lambda pertama kali diperkenalkan di .NET 3.5, pada saat yang sama dengan Language Integrated Query (LINQ) tersedia. Ekspresi lambda seperti metode anonim tetapi dengan lebih banyak fleksibilitas. Saat menggunakan ekspresi lambda, Anda tidak perlu menentukan jenis input. Karenanya, ekspresi lambda menyediakan cara yang lebih singkat dan lebih rapi untuk merepresentasikan metode anonim.

Pada artikel ini, kita akan melihat bagaimana kita bisa menggunakan ekspresi lambda di C #. Untuk bekerja dengan contoh kode yang disediakan dalam artikel ini, Anda harus menginstal Visual Studio 2019 di sistem Anda. Jika Anda belum memiliki salinannya, Anda dapat mengunduh Visual Studio 2019 di sini. 

Buat proyek aplikasi konsol di Visual Studio

Pertama, mari buat proyek aplikasi konsol .NET Core di Visual Studio. Dengan asumsi Visual Studio 2019 diinstal di sistem Anda, ikuti langkah-langkah yang diuraikan di bawah ini untuk membuat proyek aplikasi konsol .NET Core baru di Visual Studio.

  1. Luncurkan Visual Studio IDE.
  2. Klik "Buat proyek baru".
  3. Di jendela "Buat proyek baru", pilih "Aplikasi Konsol (.NET Core)" dari daftar template yang ditampilkan.
  4. Klik Next. 
  5. Di jendela "Configure your new project" yang ditampilkan berikutnya, tentukan nama dan lokasi untuk proyek baru tersebut.
  6. Klik Buat.

Mengikuti langkah-langkah ini akan menghasilkan proyek aplikasi konsol .NET Core baru di Visual Studio 2019. Kami akan menggunakan proyek ini untuk bekerja dengan ekspresi C # lambda di bagian selanjutnya dari artikel ini.

Anatomi ekspresi Lambda

Pada dasarnya ekspresi lambda adalah metode yang tidak memiliki deklarasi. Dengan kata lain, ekspresi lambda adalah metode yang tidak memiliki penentu akses atau nama. Ekspresi lambda dapat dibagi menjadi dua bagian - bagian kiri dan bagian kanan. Bagian kiri digunakan untuk input, dan bagian kanan digunakan untuk menulis ekspresi.

Berikut adalah sintaks untuk menggunakan ekspresi lambda di C #.

(Parameter masukan) => Ekspresi atau blok pernyataan

Anda dapat memiliki dua jenis ekspresi lambda, lambda ekspresi dan pernyataan lambda. Sebuah ekspresi lambda terdiri dari input di sisi kiri dan ekspresi di sisi kanan, seperti yang ditunjukkan di bawah ini.

input => ekspresi;

Pernyataan lambda terdiri dari input di sisi kiri dan serangkaian pernyataan di sisi kanan, seperti yang ditunjukkan di bawah ini.

input => {pernyataan};

Contoh ekspresi lambda di C #

Menulis ekspresi lambda itu sederhana - Anda hanya perlu menghapus kata kunci delegasi dan tipe parameter dari metode anonim. Pertimbangkan metode anonim berikut ini yang menggunakan kata kunci delegasi serta jenis parameter.

delegate (Penulis a) {return a.IsActive && a.NoOfBooksAuthored> 10; }

Pernyataan di atas dapat diubah menjadi ekspresi lambda seperti yang ditunjukkan dalam potongan kode yang diberikan di bawah ini.

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

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

a.IsActive && a.NoOfBooksAuthored> 10;

Berikut adalah contoh lain dari ekspresi lambda yang menampilkan angka ganjil antara 1 dan 9 di jendela konsol.

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

foreach (int num in integers.Where (n => n% 2 == 1) .ToList ())

{

  Console.WriteLine (num);

}

Ekspresi lambda dengan dan tanpa parameter

Ekspresi lambda bisa tanpa parameter atau memiliki satu atau beberapa parameter. Cuplikan kode berikut menggambarkan ekspresi lambda yang tidak memiliki parameter apa pun.

() => Console.WriteLine ("Ini adalah ekspresi lambda tanpa parameter apa pun");

Ekspresi lambda juga dapat memiliki satu atau lebih parameter. Cuplikan kode berikut menggambarkan bagaimana Anda dapat meneruskan satu parameter ke ekspresi lambda.

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

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

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

Anda bahkan dapat menentukan beberapa pernyataan dalam ekspresi lambda menggunakan tanda kurung kurawal. Ini ditunjukkan dalam potongan kode berikut. 

(a, 10) =>

{

   Console.WriteLine ("Ini adalah contoh ekspresi lambda

                      dengan banyak pernyataan ");

   return a.NoOfBooksAuthored> = 10;

}

Pernyataan lambda di C #

Pernyataan lambda menggunakan sintaks yang identik dengan ekspresi lambda. Perbedaannya adalah, alih-alih memiliki ekspresi di sebelah kanan operator, pernyataan lambda memiliki blok kode yang menyertakan satu atau lebih pernyataan.

Cuplikan kode berikut menggambarkan bagaimana Anda dapat memanfaatkan pernyataan lambda untuk menampilkan bilangan genap antara 1 dan 9 di jendela konsol.

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

foreach (int i dalam integers.Where (x =>

{

   jika (x% 2 == 0)

         kembali benar;

    return false;

 }

 ))

Console.WriteLine (i);

Ekspresi Lambda adalah fitur hebat di .NET dan .NET Core yang menyediakan cara yang lebih singkat untuk merepresentasikan metode anonim. Ekspresi lambda dapat memiliki parameter nol atau satu atau lebih. Anda bahkan dapat menetapkan ekspresi lambda ke delegasi Func, Action, atau Predicate. Di artikel mendatang di sini, kita akan menjelajahi ini dan fitur lain dari ekspresi lambda. Kami juga akan menjelajahi bagaimana kami dapat bekerja dengan ekspresi lambda dan LINQ serta lambda asinkron.

Bagaimana melakukan lebih banyak di C #:

  • Kapan menggunakan kelas abstrak vs. antarmuka di C #
  • Bagaimana bekerja dengan AutoMapper di C #
  • Cara menggunakan ekspresi lambda di C #
  • Cara bekerja dengan delegasi Action, Func, dan Predicate di C #
  • Bagaimana bekerja dengan delegasi di C #
  • Bagaimana menerapkan logger sederhana di C #
  • Bagaimana bekerja dengan atribut di C #
  • Bagaimana bekerja dengan log4net di C #
  • Bagaimana menerapkan pola desain repositori di C #
  • Bagaimana bekerja dengan refleksi di C #
  • Bagaimana bekerja dengan filesystemwatcher di C #
  • Bagaimana melakukan inisialisasi malas di C #
  • Bagaimana bekerja dengan MSMQ di C #
  • Bagaimana bekerja dengan metode ekstensi di C #
  • Bagaimana kami ekspresi lambda di C #
  • Kapan menggunakan kata kunci volatile di C #
  • Cara menggunakan kata kunci hasil di C #
  • Bagaimana menerapkan polimorfisme di C #
  • Cara membuat penjadwal tugas Anda sendiri di C #
  • Bagaimana bekerja dengan RabbitMQ di C #
  • Bagaimana bekerja dengan tupel di C #
  • Menjelajahi metode virtual dan abstrak di C #