Ekspresi C# LINQ Lambda

Ekspresi C Linq Lambda



Ekspresi Lambda di C# secara langsung mengambil ekspresi/pernyataan bersyarat sebagai badannya tanpa nama. Kita perlu menentukan parameter dan kemudian ekspresi diberikan padanya. Saat bekerja dengan Language Integrated Query (LINQ), Anda mungkin memiliki persyaratan yang Anda perlukan untuk mengubah data yang ada di sumber data atau mengonversi satu sumber data ke sumber data lainnya. Dalam panduan ini, kita akan melihat cara memfilter record dari sumber data dengan menentukan ekspresi lambda dan memilih record dari sumber data.

Sintaksis:

  1. Ekspresi Lambda: (parameter) => ekspresi
  2. Pernyataan Lambda: { pernyataan bersyarat1 pernyataan2 … }

Contoh 1:

Buat daftar 'pupuk' yang memuat lima string. Manfaatkan ekspresi lambda yang mengembalikan semua string dari daftar.

menggunakan Sistem ;
menggunakan System.Linq ;
menggunakan System.Collections.Generic ;

kelas LambdaExpressionExample {

statis publik ruang kosong Utama ( )
{

// Buat Daftar pupuk
Daftar pupuk = baru Daftar ( ) ;
pupuk . Menambahkan ( 'Urea' ) ;
pupuk . Menambahkan ( 'nitrogen' ) ;
pupuk . Menambahkan ( 'kalium' ) ;
pupuk . Menambahkan ( 'Di-amonium Fosfat' ) ;
pupuk . Menambahkan ( 'fosfor' ) ;

// Gunakan LambdaExpression untuk memilih semua pupuk
dulu hasil = pupuk . Pilih ( inp1 => inp1 ) ;
untuk setiap ( dulu Saya di dalam hasil )
{
Menghibur . WriteLine ( Saya ) ;
}

}
}

Keluaran:









Penjelasan:



1. Buat daftar string type bernama “fertilizers”. Tambahkan lima string ke daftar ini.

2. Gunakan ekspresi lambda untuk memilih semua pupuk. Di sini, ekspresi digunakan dengan operator 'Pilih'. Ekspresinya adalah inp1 => inp1. Kemudian, kami menggunakan loop 'foreach' untuk menampilkan string yang dikembalikan oleh ekspresi lambda.





Contoh 2:

Gunakan ekspresi lambda untuk memilih pupuk yang mengandung 'Fosfat'.

menggunakan Sistem ;
menggunakan System.Linq ;
menggunakan System.Collections.Generic ;

kelas LambdaExpressionExample {

statis publik ruang kosong Utama ( )
{

// Buat Daftar pupuk
Daftar pupuk = baru Daftar ( ) ;
pupuk . Menambahkan ( 'Urea' ) ;
pupuk . Menambahkan ( 'nitrogen' ) ;
pupuk . Menambahkan ( 'orto - Fosfat' ) ;
pupuk . Menambahkan ( 'Di-amonium Fosfat' ) ;
pupuk . Menambahkan ( 'fosfor' ) ;

// Gunakan LambdaExpression untuk memilih  pupuk yang menyertakan - 'Fosfat'
dulu hasil = pupuk . Di mana ( inp1 => inp1 . Mengandung ( 'Fosfat' ) ) ;
untuk setiap ( dulu Saya di dalam hasil )
{
Menghibur . WriteLine ( Saya ) ;
}

}
}

Keluaran:



Ada dua string yang menyertakan 'Fosfat' di dalamnya.

Penjelasan:

1. Buat daftar string type bernama “fertilizers”. Tambahkan lima string ke daftar ini.

2. Di sini, ekspresi digunakan dengan operator “Where”. Ekspresinya adalah inp1 => inp1.Berisi ('Fosfat'). Kemudian, kami menggunakan loop 'foreach' untuk menampilkan string yang dikembalikan oleh ekspresi lambda.

Contoh 3:

Mari kita buat daftar (order_quantity) yang menampung tiga pesanan. Tentukan ekspresi lambda untuk menambahkan 5 ke setiap pesanan.

menggunakan Sistem ;
menggunakan System.Linq ;
menggunakan System.Collections.Generic ;

kelas LambdaExpressionExample {

statis publik ruang kosong Utama ( )
{

// Buat Daftar kuantitas
Cantumkan order_quantity = baru Daftar ( ) ;
jumlah pesanan . Menambahkan ( 5 ) ;
jumlah pesanan . Menambahkan ( 7 ) ;
jumlah pesanan . Menambahkan ( 8 ) ;

// Gunakan LambdaExpression ke 5 untuk setiap pesanan.
dulu hasil = jumlah pesanan . Pilih ( inp1 => inp1 + 5 ) ;
untuk setiap ( dulu Saya di dalam hasil )
{
Menghibur . WriteLine ( Saya ) ;
}

}
}

Keluaran:

Daftar [5,7,8] diubah menjadi [10,12,13].

Penjelasan:

1. Buat daftar besaran bertipe Integer.

2. Kami memilih pesanan terlebih dahulu dan kemudian menambahkan 5 ke setiap pesanan. Jadi, operator 'Pilih' digunakan. Ekspresinya adalah inp1 => inp1 + 5.

Contoh 4:

Buat daftar sumber data jenis Peristiwa (dengan tiga atribut – Nama_Kejadian, Status_Kegiatan, dan Anggaran_Kegiatan) dan kembalikan catatan dengan Anggaran_Kegiatan yang lebih besar dari 5000.

menggunakan Sistem ;
menggunakan System.Linq ;
menggunakan System.Collections.Generic ;

// Buat kelas bernama - 'Event_Source' dengan 5 kejadian.
publik kelas Sumber_Acara
{
publik statis ruang kosong Utama ( )
{
// Daftar Acara
acara IList = baru Daftar ( ) {
baru Peristiwa ( ) { Nama_Acara = 'Kamp Teknis' ,Status_Acara = 'Berencana' ,Anggaran_Acara = 10.000 } ,
baru Peristiwa ( ) { Nama_Acara = 'Kamp Pemasaran' ,Status_Acara = 'Lengkap' ,Anggaran_Acara = 5000 } ,
baru Peristiwa ( ) { Nama_Acara = 'Lainnya' ,Status_Acara = 'Berencana' ,Anggaran_Acara = 1000 } ,
baru Peristiwa ( ) { Nama_Acara = 'Politik' ,Status_Acara = 'Berencana' ,Anggaran_Acara = 13000 } ,
baru Peristiwa ( ) { Nama_Acara = 'Keuangan' ,Status_Acara = 'Lengkap' ,Anggaran_Acara = 20000 } ,
} ;

//Anggaran_Acara lebih besar dari 5.000.
dulu hasil = acara . Di mana ( inp1 => inp1 . Anggaran_Acara > 5000 ) ;
untuk setiap ( dulu Saya di dalam hasil ) {
Menghibur . WriteLine ( 'NAMA:' + Saya . Nama_Acara + ' STATUS : ' + Saya . Status_Acara + ' ANGGARAN: ' + Saya . Anggaran_Acara ) ;
}
}
}

publik kelas Peristiwa {
publik rangkaian Nama_Acara { mendapatkan ; mengatur ; }
publik rangkaian Status_Acara { mendapatkan ; mengatur ; }
publik int Anggaran_Acara { mendapatkan ; mengatur ; }
}

Keluaran:

Ada tiga rekaman dalam daftar 'acara' dengan Anggaran_Acara lebih besar dari 5.000.

Penjelasan:

1. Pertama, kita membuat class “Event” dengan tiga atribut.

2. Kemudian, kami membuat daftar lima acara.

3. Menggunakan inp1 => inp1.Anggaran_Acara > 5000 ekspresi lambda, kami memilih catatan dengan Event_Budget lebih besar dari 5000.

Contoh 5:

Gunakan kode sebelumnya dan ubah ekspresi lambda. Kembalikan acara dengan Event_Name yang diakhiri dengan 'Camp' dan dengan Event_Status yang 'Planned'.

//Ekspresi Lambda - Event_Name diakhiri dengan 'Camp' dan Event_Status adalah 'Direncanakan'.
dulu hasil = acara . Di mana ( inp1 => inp1 . Nama_Acara . Berakhir dengan ( 'Kamp' ) && inp1 . Status_Acara == 'Berencana' ) ;
untuk setiap ( dulu Saya di dalam hasil ) {
Menghibur . WriteLine ( 'NAMA:' + Saya . Nama_Acara + ' STATUS : ' + Saya . Status_Acara + ' ANGGARAN: ' + Saya . Anggaran_Acara ) ;
}

Keluaran:

Hanya ada satu record yang memenuhi kedua kondisi tersebut.

Penjelasan:

Di sini, kami menetapkan dua kondisi dalam ekspresi lambda. Operator && (and) digunakan untuk menjadikan kedua kondisi sebagai True. Kondisi pertama menggunakan metode EndsWith() untuk memeriksa apakah suatu string diakhiri dengan string yang diberikan. Kondisi kedua menggunakan operator “Perbandingan” (==) untuk memeriksa apakah kedua nilainya sama atau tidak.

Kesimpulan

Dalam C#, ekspresi lambda mengambil ekspresi/pernyataan bersyarat sebagai badannya tanpa nama. Kita perlu menentukan parameternya. Kemudian, ekspresi ditugaskan untuk itu. Pada dasarnya, ini digunakan untuk memfilter rekaman dari sumber data yang diberikan, mengubah elemen, dan memilih elemen dari sumber/urutan data. Dalam panduan ini, kita membahas lima contoh berbeda yang memilih, memfilter, dan mengubah elemen menggunakan ekspresi lambda.