Ohjelmointi

Kuinka käyttää lambda-lausekkeita C #: ssä

Lambda-lausekkeet esiteltiin ensin .NET 3.5: ssä, samaan aikaan kun kielen integroitu kysely (LINQ) tehtiin saataville. Lambda-lausekkeet ovat kuin nimettömiä menetelmiä, mutta paljon joustavampia. Kun käytät lambda-lauseketta, sinun ei tarvitse määrittää syötteen tyyppiä. Näin ollen lambda-ilmaisu tarjoaa lyhyemmän ja puhtaamman tavan edustaa nimettömiä menetelmiä.

Tässä artikkelissa tarkastellaan, miten voimme käyttää lambda-lausekkeita C #: ssä. Jotta voit työskennellä tässä artikkelissa annettujen koodiesimerkkien kanssa, järjestelmässäsi on oltava asennettuna Visual Studio 2019. Jos sinulla ei vielä ole kopiota, voit ladata Visual Studio 2019 täältä.

Luo konsolisovellusprojekti Visual Studiossa

Ensinnäkin, luodaan .NET Core -konsolisovellusprojekti Visual Studiossa. Olettaen, että Visual Studio 2019 on asennettu järjestelmään, luo uusi .NET Core -konsolisovellusprojekti Visual Studiossa noudattamalla seuraavia ohjeita.

  1. Käynnistä Visual Studio IDE.
  2. Napsauta Luo uusi projekti.
  3. Valitse Luo uusi projekti -ikkunassa ”Console App (.NET Core)” näytetystä malliluettelosta.
  4. Napsauta Seuraava.
  5. Määritä seuraavan projektin nimi ja sijainti uuden Konfiguroi uusi projekti -ikkunassa.
  6. Napsauta Luo.

Näiden vaiheiden noudattamisen pitäisi johtaa uuteen .NET Core -konsolisovellusprojektiin Visual Studio 2019: ssä. Tätä projektia käytetään työskentelemään C # lambda -lausekkeiden kanssa tämän artikkelin seuraavissa osissa.

Lambda-lausekkeen anatomia

Pohjimmiltaan lambda-lauseke on menetelmä, jolla ei ole ilmoitusta. Toisin sanoen lambda-lauseke on menetelmä, jolla ei ole pääsyn määrittelijää tai nimeä. Lambda-lauseke voidaan jakaa kahteen osaan - vasempaan ja oikeaan osaan. Vasenta osaa käytetään syöttöön ja oikeaa osaa lausekkeiden kirjoittamiseen.

Tässä on syntaksia lambda-lausekkeiden käyttämiseen C #: ssä.

(Syöttöparametrit) => Lauseke tai lausekelohko

Sinulla voi olla kahdenlaisia ​​lambda-lausekkeita, lauseke lambda ja lauseke lambda. Lauseke lambda koostuu syötteestä vasemmalla puolella ja ilmaisulla oikealla puolella, kuten alla on esitetty.

input => lauseke;

Lausuma lambda koostuu vasemmalla puolella olevasta syötteestä ja oikealla puolella olevasta lausejoukosta, kuten alla on esitetty.

syöte => {lauseet};

Lambda-ilmaisuesimerkkejä C #: ssä

Lambda-lausekkeen kirjoittaminen on helppoa - sinun tarvitsee vain poistaa edustajan avainsana ja parametrityyppi tuntemattomasta menetelmästä. Harkitse seuraavaa anonyymia menetelmää, joka käyttää edustajan avainsanaa ja parametrityyppiä.

edustaja (Kirjoittaja a) {return a.IsActive && a.NoOfBooksAuthored> 10; }

Yllä oleva käsky voidaan muuntaa lambda-lausekkeeksi alla olevan koodikatkelman mukaisesti.

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

Edellä olevassa lausunnossa a on parametri ja => on lambda-operaattori. Seuraava lauseke on lauseke.

a.IsActive && a.NoOfBooksAuthored> 10;

Tässä on toinen esimerkki lambda-lausekkeesta, joka näyttää parittomat luvut välillä 1 ja 9 konsoli-ikkunassa.

Luettelon kokonaisluvut = uusi Lista {1, 2, 3, 4, 5, 6, 7, 8, 9};

foreach (int numero kokonaislukuina missä (n => n% 2 == 1) .ToList ())

{

Console.WriteLine (numero);

}

Lambda-lausekkeet parametreillä ja ilman niitä

Lambda-lausekkeet voivat olla parametrittomia tai niillä voi olla yksi tai useampi parametri. Seuraava koodinpätkä kuvaa lambda-lauseketta, jolla ei ole mitään parametreja.

() => Console.WriteLine ("Tämä on lambda-lauseke ilman parametreja");

Lambda-lausekkeilla voi olla myös yksi tai useampi parametri. Seuraava koodinpätkä kuvaa, kuinka voit välittää yhden parametrin lambda-lausekkeelle.

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

Voit myös määrittää parametrin tyypin lambda-lausekkeessa alla olevan koodikatkelman mukaisesti.

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

Voit jopa määrittää useita lauseita lambda-lausekkeessa käyttämällä kiharaisia ​​aaltosulkeita. Tämä näkyy seuraavassa koodinpätkässä.

(a, 10) =>

{

Console.WriteLine ("Tämä on esimerkki lambda-lausekkeesta

useita lausekkeita ");

palauta a.NoOfBooksAuthored> = 10;

}

Lausunto lambdas C #: ssä

Lausunto lambda käyttää syntaksia, joka on identtinen lausekkeen lambdas kanssa. Erona on, että sen sijaan, että lausekkeella olisi operaattorin oikealla puolella, lauseessa lambda on koodilohko, joka sisältää yhden tai useamman lauseen.

Seuraava koodinpätkä kuvaa, kuinka voit hyödyntää lauseketta lambda näyttääksesi parilliset numerot välillä 1–9 konsoli-ikkunassa.

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

foreach (int i kokonaislukuina missä (x =>

{

jos (x% 2 == 0)

palaa tosi;

return false;

 }

 ))

Console.WriteLine (i);

Lambda-lausekkeet ovat .NET- ja .NET Core -ominaisuuksien loistava ominaisuus, jotka tarjoavat lyhyemmän tavan edustaa nimettömiä menetelmiä. Lambda-lausekkeilla voi olla nolla parametria tai yksi tai useampi. Voit jopa määrittää lambda-lausekkeita Func-, Action- tai Predicate-edustajille. Tulevassa tässä artikkelissa tutkimme näitä ja muita lambda-lausekkeiden ominaisuuksia. Tutkimme myös, kuinka voimme työskennellä lambda-lausekkeiden ja LINQ: n sekä asynkronoitujen lambdojen kanssa.

Kuinka tehdä enemmän C #: ssä:

  • Milloin abstraktia luokkaa vs. käyttöliittymää käytetään C #: ssä
  • Kuinka työskennellä AutoMapperin kanssa C #: ssä
  • Kuinka käyttää lambda-lausekkeita C #: ssä
  • Kuinka toimia Action-, Func- ja Predicate-edustajien kanssa C #: ssä
  • Kuinka työskennellä C #: n edustajien kanssa
  • Kuinka toteuttaa yksinkertainen kirjaaja C #: ssä
  • Kuinka työskennellä attribuuttien kanssa C #: ssä
  • Kuinka työskennellä log4netin kanssa C #: ssä
  • Kuinka toteuttaa arkiston suunnittelumalli C #: ssä
  • Kuinka työskennellä heijastuksen kanssa C #: ssä
  • Kuinka työskennellä tiedostojärjestelmän katselijan kanssa C #: ssä
  • Kuinka tehdä laiska alustus C #: ssä
  • Kuinka työskennellä MSMQ: n kanssa C #: ssä
  • Kuinka työskennellä laajennusmenetelmien kanssa C #: ssä
  • Kuinka meille lambda-lausekkeet C #: ssä
  • Milloin haihtuvaa avainsanaa käytetään C #: ssä
  • Tuottoavainsanan käyttäminen C #: ssä
  • Kuinka toteuttaa polymorfismi C #: ssa
  • Kuinka rakentaa oma tehtävän ajastin C #
  • Kuinka työskennellä RabbitMQ: n kanssa C #: ssä
  • Kuinka työskennellä C #: n kanssa
  • Virtuaalisten ja abstraktien menetelmien tutkiminen C #: ssä