Kako koristiti lambda izraze u C #

Lambda izrazi prvi su put predstavljeni u .NET 3.5, u isto vrijeme kada je i jezično integrirani upit (LINQ) postao dostupan. Lambda izrazi su poput anonimnih metoda, ali s puno više fleksibilnosti. Kada upotrebljavate lambda izraz, ne trebate navesti vrstu unosa. Stoga, lambda izraz pruža kraći i čišći način predstavljanja anonimnih metoda.

U ovom ćemo članku pogledati kako možemo koristiti lambda izraze u C #. Da biste radili s primjerima koda iz ovog članka, u sustavu biste trebali instalirati Visual Studio 2019. Ako još nemate kopiju, ovdje možete preuzeti Visual Studio 2019. 

Stvorite projekt aplikacije konzole u Visual Studiju

Prvo, kreirajmo projekt aplikacije .NET Core konzole u Visual Studiju. Pod pretpostavkom da je Visual Studio 2019 instaliran u vašem sustavu, slijedite korake opisane u nastavku da biste u Visual Studiju stvorili novi projektni program konzole .NET Core.

  1. Pokrenite Visual Studio IDE.
  2. Kliknite "Stvori novi projekt".
  3. U prozoru "Stvori novi projekt" s popisa predložaka odaberite "Aplikacija konzole (.NET Core)".
  4. Kliknite Dalje. 
  5. U sljedećem prozoru "Konfiguriranje novog projekta" navedite naziv i mjesto za novi projekt.
  6. Kliknite Stvori.

Slijedenje ovih koraka trebalo bi rezultirati novim aplikacijskim projektom .NET Core konzole u Visual Studio 2019. Ovaj ćemo projekt koristiti za rad s C # lambda izrazima u sljedećim odjeljcima ovog članka.

Anatomija Lambda izraza

U osnovi je lambda izraz metoda koja nema deklaraciju. Drugim riječima, lambda izraz je metoda koja nema specifikator pristupa ili ime. Lambda izraz može se podijeliti u dva dijela - lijevi i desni dio. Lijevi dio služi za unos, a desni za pisanje izraza.

Evo sintakse za upotrebu lambda izraza u C #.

(Ulazni parametri) => Izraz ili blok izraza

Možete imati dvije vrste lambda izraza, izraz lambda i iskaz lambda. Izraz lambda sastoji se od ulaza na lijevoj strani i izraza na desnoj strani, kao što je prikazano dolje.

input => izraz;

Izjava lambda sastoji se od ulaza na lijevoj strani i skupa izjava na desnoj strani, kao što je prikazano dolje.

input => {izjave};

Primjeri Lambda izraza u C #

Pisanje lambda izraza jednostavno je - samo trebate ukloniti ključnu riječ i tip parametra iz anonimne metode. Razmotrite sljedeću anonimnu metodu koja koristi ključnu riječ delegat kao i tip parametra.

delegat (Autor a) {return a.IsActive && a.NoOfBooksAuthored> 10; }

Gornja izjava može se pretvoriti u lambda izraz kao što je prikazano u donjem isječku koda.

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

U gornjoj je izjavi aparametar i =>lambda operator. Sljedeća izjava je izraz.

a.IsActive && a.NoOfBooksAuthored> 10;

Evo još jednog primjera lambda izraza koji prikazuje neparne brojeve između 1 i 9 na prozoru konzole.

Popis cijelih brojeva = novi popis {1, 2, 3, 4, 5, 6, 7, 8, 9};

foreach (int broj u cijelim brojevima. Gdje (n => n% 2 == 1) .ToList ())

{

  Console.WriteLine (num);

}

Lambda izrazi sa i bez parametara

Lambda izrazi mogu biti bez parametara ili imati jedan ili više parametara. Sljedeći isječak koda ilustrira lambda izraz koji nema nikakve parametre.

() => Console.WriteLine ("Ovo je lambda izraz bez ikakvog parametra");

Lambda izrazi također mogu imati jedan ili više parametara. Sljedeći isječak koda ilustrira kako možete proslijediti jedan parametar lambda izrazu.

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

Također možete odrediti vrstu parametra u lambda izrazu, kao što je prikazano u isječku koda koji je dan u nastavku.

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

Možete čak odrediti više izjava u lambda izrazu pomoću kovrčavih zagrada. To je prikazano u sljedećem isječku koda. 

(a, 10) =>

{

   Console.WriteLine ("Ovo je primjer lambda izraza

                      s više izjava ");

   povratak a.NoOfBooksAuthored> = 10;

}

Izjava lambda u C #

Izjava lambda koristi sintaksu identičnu izrazu lambda. Razlika je u tome što, umjesto da ima izraz desno od operatora, lambda izraz ima blok koda koji uključuje jedan ili više izraza.

Sljedeći isječak koda ilustrira kako možete iskoristiti prednost izjave lambda za prikaz parnih brojeva između 1 i 9 na prozoru konzole.

int [] cijeli brojevi = novo [] {1, 2, 3, 4, 5, 6, 7, 8, 9};

foreach (int i u cijelim brojevima.Gdje (x =>

{

   ako (x% 2 == 0)

         povratak istinit;

    return false;

 }

 ))

Console.WriteLine (i);

Lambda izrazi izvrsna su značajka u .NET i .NET Core koja pružaju kraći način predstavljanja anonimnih metoda. Lambda izrazi mogu imati nula parametara ili jedan ili više. Možete dodijeliti lambda izraze delegatima Func, Action ili Predicate. U budućem ćemo članku ovdje istražiti ove i druge značajke lambda izraza. Također ćemo istražiti kako možemo raditi s lambda izrazima i LINQ-om, kao i s asinkranim lambdama.

Kako učiniti više u C #:

  • Kada koristiti apstraktnu klasu naspram sučelja u C #
  • Kako raditi s AutoMapperom u C #
  • Kako koristiti lambda izraze u C #
  • Kako raditi s delegatima Action, Func i Predicate u C #
  • Kako raditi s delegatima u C #
  • Kako implementirati jednostavni zapisnik u C #
  • Kako raditi s atributima u C #
  • Kako raditi s log4netom na C #
  • Kako implementirati obrazac dizajna spremišta u C #
  • Kako raditi s refleksijom u C #
  • Kako raditi s nadzornikom datoteka u C #
  • Kako izvesti lijenu inicijalizaciju u C #
  • Kako raditi s MSMQ-om u C #
  • Kako raditi s metodama produženja u C #
  • Kako do nas lambda izrazi u C #
  • Kada upotrijebiti hlapljivu ključnu riječ u C #
  • Kako koristiti ključnu riječ yield u C #
  • Kako implementirati polimorfizam u C #
  • Kako izraditi vlastiti planer zadataka u C #
  • Kako raditi s RabbitMQ u C #
  • Kako raditi s korpicom u C #
  • Istraživanje virtualnih i apstraktnih metoda u C #