Syntaksi:
- Lambda ilmaisu: (parametrit) => lauseke
- Lambda-lausunto: { ehdollinen lauseke1 lauseke2 … }
Esimerkki 1:
Luo 'lannoitteiden' luettelo, jossa on viisi merkkijonoa. Käytä lambda-lauseketta, joka palauttaa kaikki merkkijonot luettelosta.
käyttämällä Järjestelmä ;käyttämällä System.Linq ;
käyttämällä System.Collections.Generic ;
luokkaa LambdaExpressionEsimerkki {
staattinen julkinen mitätön Main ( )
{
// Luo luettelo lannoitteista
Listaa lannoitteet = Uusi Lista ( ) ;
lannoitteet . Lisätä ( 'urea' ) ;
lannoitteet . Lisätä ( 'typpi' ) ;
lannoitteet . Lisätä ( 'kalium' ) ;
lannoitteet . Lisätä ( 'Diammoniumfosfaatti' ) ;
lannoitteet . Lisätä ( 'fosfori' ) ;
// Valitse kaikki lannoitteet LambdaExpressionilla
oli tulos = lannoitteet . Valitse ( inp1 => inp1 ) ;
jokaiselle ( oli i sisään tulos )
{
Konsoli . WriteLine ( i ) ;
}
}
}
Lähtö:
Selitys:
1. Luo luettelo merkkijonotyypeistä nimeltä 'lannoitteet'. Lisää viisi merkkijonoa tähän luetteloon.
2. Käytä lambda-lauseketta valitaksesi kaikki lannoitteet. Tässä lauseketta käytetään 'Valitse'-operaattorin kanssa. Ilmaisu on inp1 => inp1. Sitten käytämme 'foreach' -silmukkaa näyttääksemme merkkijonot, jotka lambda-lauseke palauttaa.
Esimerkki 2:
Käytä lambda-lauseketta valitaksesi lannoitteet, jotka sisältävät 'fosfaattia'.
käyttämällä Järjestelmä ;käyttämällä System.Linq ;
käyttämällä System.Collections.Generic ;
luokkaa LambdaExpressionEsimerkki {
staattinen julkinen mitätön Main ( )
{
// Luo luettelo lannoitteista
Listaa lannoitteet = Uusi Lista ( ) ;
lannoitteet . Lisätä ( 'urea' ) ;
lannoitteet . Lisätä ( 'typpi' ) ;
lannoitteet . Lisätä ( 'orto - fosfaatti' ) ;
lannoitteet . Lisätä ( 'Diammoniumfosfaatti' ) ;
lannoitteet . Lisätä ( 'fosfori' ) ;
// Valitse LambdaExpressionilla lannoitteet, jotka sisältävät - 'Fosfaatti'
oli tulos = lannoitteet . Missä ( inp1 => inp1 . Sisältää ( 'Fosfaatti' ) ) ;
jokaiselle ( oli i sisään tulos )
{
Konsoli . WriteLine ( i ) ;
}
}
}
Lähtö:
On olemassa kaksi merkkijonoa, jotka sisältävät 'fosfaatin'.
Selitys:
1. Luo luettelo merkkijonotyypeistä nimeltä 'lannoitteet'. Lisää viisi merkkijonoa tähän luetteloon.
2. Tässä lauseketta käytetään 'Missä'-operaattorin kanssa. Ilmaisu on inp1 => inp1.Contains('Fosfaatti'). Sitten käytämme 'foreach' -silmukkaa näyttääksemme merkkijonot, jotka lambda-lauseke palauttaa.
Esimerkki 3:
Otetaan luettelo (order_quantity), joka sisältää kolme tilausta. Määritä lambda-lauseke lisätäksesi 5 jokaiseen tilaukseen.
käyttämällä Järjestelmä ;käyttämällä System.Linq ;
käyttämällä System.Collections.Generic ;
luokkaa LambdaExpressionEsimerkki {
staattinen julkinen mitätön Main ( )
{
// Luo määrien luettelo
Listaa tilausmäärä = Uusi Lista ( ) ;
tilaus_määrä . Lisätä ( 5 ) ;
tilaus_määrä . Lisätä ( 7 ) ;
tilaus_määrä . Lisätä ( 8 ) ;
// Käytä LambdaExpression arvoa 5 jokaisessa tilauksessa.
oli tulos = tilaus_määrä . Valitse ( inp1 => inp1 + 5 ) ;
jokaiselle ( oli i sisään tulos )
{
Konsoli . WriteLine ( i ) ;
}
}
}
Lähtö:
Lista [5,7,8] muunnetaan muotoon [10,12,13].
Selitys:
1. Luo Integer-tyyppisten määrien luettelo.
2. Valitsemme ensin tilaukset ja lisäämme sitten 5 jokaiseen tilaukseen. Joten 'Valitse'-operaattoria käytetään. Ilmaisu on inp1 => inp1 + 5.
Esimerkki 4:
Luo tapahtumatyyppinen luettelotietolähde (kolme attribuutilla – Tapahtuman_nimi, Tapahtuman_tila ja Tapahtuman_budjetti) ja palauta tietueet, joiden Tapahtuman_budjetti on suurempi kuin 5000.
käyttämällä Järjestelmä ;käyttämällä System.Linq ;
käyttämällä System.Collections.Generic ;
// Luo luokka nimeltä - 'Event_Source', jossa on 5 tapahtumaa.
julkinen luokkaa Tapahtuman_lähde
{
julkinen staattinen mitätön Main ( )
{
// Tapahtumaluettelo
IList tapahtumia = Uusi Lista ( ) {
Uusi Tapahtuma ( ) { Tapahtuman nimi = 'Tekninen leiri' ,Tapahtuman_tila = 'Suunniteltu' ,Tapahtuma_budjetti = 10 000 } ,
Uusi Tapahtuma ( ) { Tapahtuman nimi = 'Markkinointileiri' ,Tapahtuman_tila = 'Valmis' ,Tapahtuma_budjetti = 5000 } ,
Uusi Tapahtuma ( ) { Tapahtuman nimi = 'muu' ,Tapahtuman_tila = 'Suunniteltu' ,Tapahtuma_budjetti = 1000 } ,
Uusi Tapahtuma ( ) { Tapahtuman nimi = 'Politiikka' ,Tapahtuman_tila = 'Suunniteltu' ,Tapahtuma_budjetti = 13 000 } ,
Uusi Tapahtuma ( ) { Tapahtuman nimi = 'Rahoittaa' ,Tapahtuman_tila = 'Valmis' ,Tapahtuma_budjetti = 20 000 } ,
} ;
//Event_Budget yli 5000.
oli tulos = Tapahtumat . Missä ( inp1 => inp1 . Tapahtuma_Budjetti > 5000 ) ;
jokaiselle ( oli i sisään tulos ) {
Konsoli . WriteLine ( 'NAME:' + i . Tapahtuman nimi + ' TILA: ' + i . Tapahtuman_tila + 'BUDJETTI:' + i . Tapahtuma_Budjetti ) ;
}
}
}
julkinen luokkaa Tapahtuma {
julkinen merkkijono Tapahtuman nimi { saada ; aseta ; }
julkinen merkkijono Tapahtuman_tila { saada ; aseta ; }
julkinen int Tapahtuma_Budjetti { saada ; aseta ; }
}
Lähtö:
Tapahtumaluettelossa on kolme tietuetta, joiden Event_Budget on suurempi kuin 5000.
Selitys:
1. Ensin luodaan 'Tapahtuma'-luokka, jossa on kolme attribuuttia.
2. Luomme sitten luettelon viidestä tapahtumasta.
3. Käyttämällä inp1 => inp1.Event_Budget > 5000 lambda-lauseke, valitsemme tietueet, joiden Event_Budget on suurempi kuin 5000.
Esimerkki 5:
Käytä edellistä koodia ja muuta lambda-lauseketta. Palauta tapahtumat Tapahtuman_nimi, joka päättyy 'leiri', ja Event_Status, joka on 'Suunniteltu'.
//Lambda-lauseke - Tapahtuman_nimi päättyy 'Camp' ja Tapahtuman_tila on 'Suunniteltu'.oli tulos = Tapahtumat . Missä ( inp1 => inp1 . Tapahtuman nimi . Loppuu ( 'Leiri' ) && inp1 . Tapahtuman_tila == 'Suunniteltu' ) ;
jokaiselle ( oli i sisään tulos ) {
Konsoli . WriteLine ( 'NAME:' + i . Tapahtuman nimi + ' TILA: ' + i . Tapahtuman_tila + 'BUDJETTI:' + i . Tapahtuma_Budjetti ) ;
}
Lähtö:
On vain yksi tietue, joka täyttää molemmat ehdot.
Selitys:
Tässä määritämme kaksi ehtoa lambda-lausekkeessa. && (ja) -operaattoria käytetään tekemään kahdesta ehdosta tosi. Ensimmäinen ehto käyttää EndsWith()-menetelmää tarkistaakseen, päättyykö merkkijono annettuun merkkijonoon. Toinen ehto käyttää 'Vertailu'-operaattoria (==) tarkistaakseen, ovatko molemmat arvot samat vai eivät.
Johtopäätös
C#:ssa lambda-lauseke ottaa lausekkeet/ehdolliset lauseet rungokseen ilman nimeä. Meidän on määritettävä parametrit. Sitten lausekkeet määritetään sille. Periaatteessa näitä käytetään tietueiden suodattamiseen annetusta tietolähteestä, elementtien muuntamiseen ja elementtien valitsemiseen tietolähteestä/sekvenssistä. Tässä oppaassa käsittelimme viittä eri esimerkkiä, jotka valitsevat, suodattavat ja muuntavat elementtejä lambda-lausekkeen avulla.