C# LINQ Lambda išraiškos

C Linq Lambda Israiskos



Lambda išraiška C # tiesiogiai paima išraiškas / sąlyginius teiginius kaip savo kūną be pavadinimo. Turime nurodyti parametrus ir tada jam priskiriamos išraiškos. Dirbdami su kalbos integruota užklausa (LINQ), jums gali reikėti transformuoti duomenų šaltinyje esančius duomenis arba konvertuoti vieną duomenų šaltinį į kitą duomenų šaltinį. Šiame vadove pamatysime, kaip filtruoti įrašus iš duomenų šaltinio, nurodant lambda išraišką, ir pasirinkti įrašus iš duomenų šaltinio.

Sintaksė:

  1. Lambda išraiška: (parametrai) => išraiška
  2. Lambda pareiškimas: { sąlyginis sakinys1 teiginys2 … }

1 pavyzdys:

Sukurkite „trąšų“ sąrašą, kuriame yra penkios eilutės. Naudokite lambda išraišką, kuri grąžina visas sąrašo eilutes.

naudojant Sistema ;
naudojant Sistema.Linq ;
naudojant Sistema.Kolekcijos.Bendra ;

klasė LambdaExpressionExample {

statinis viešas tuštuma Pagrindinis ( )
{

// Sukurti trąšų sąrašą
Trąšų sąrašas = naujas Sąrašas ( ) ;
trąšos . Papildyti ( 'karbamidas' ) ;
trąšos . Papildyti ( 'azotas' ) ;
trąšos . Papildyti ( 'kalis' ) ;
trąšos . Papildyti ( 'Diamonio fosfatas' ) ;
trąšos . Papildyti ( 'fosforas' ) ;

// Naudokite LambdaExpression, kad pasirinktumėte visas trąšas
buvo rezultatas = trąšos . Pasirinkite ( inp1 => inp1 ) ;
kiekvienam ( buvo i in rezultatas )
{
Konsolė . WriteLine ( i ) ;
}

}
}

Išvestis:









Paaiškinimas:



1. Sukurkite eilutės tipo sąrašą pavadinimu „trąšos“. Į šį sąrašą įtraukite penkias eilutes.

2. Naudokite lambda išraišką, kad pasirinktumėte visas trąšas. Čia išraiška naudojama su operatoriumi „Pasirinkti“. Išraiška yra inp1 => inp1. Tada naudojame „foreach“ kilpą, kad parodytume eilutes, kurias grąžina lambda išraiška.





2 pavyzdys:

Naudokite lambda išraišką, kad pasirinktumėte trąšas, kurių sudėtyje yra fosfato.

naudojant Sistema ;
naudojant Sistema.Linq ;
naudojant Sistema.Kolekcijos.Bendra ;

klasė LambdaExpressionExample {

statinis viešas tuštuma Pagrindinis ( )
{

// Sukurti trąšų sąrašą
Trąšų sąrašas = naujas Sąrašas ( ) ;
trąšos . Papildyti ( 'karbamidas' ) ;
trąšos . Papildyti ( 'azotas' ) ;
trąšos . Papildyti ( 'orto - fosfatas' ) ;
trąšos . Papildyti ( 'Diamonio fosfatas' ) ;
trąšos . Papildyti ( 'fosforas' ) ;

// Naudokite LambdaExpression, kad pasirinktumėte trąšas, kuriose yra – „Fosfatas“
buvo rezultatas = trąšos . Kur ( inp1 => inp1 . Sudėtyje yra ( 'Fosfatas' ) ) ;
kiekvienam ( buvo i in rezultatas )
{
Konsolė . WriteLine ( i ) ;
}

}
}

Išvestis:



Yra dvi eilutės, kuriose yra „fosfatas“.

Paaiškinimas:

1. Sukurkite eilutės tipo sąrašą pavadinimu „trąšos“. Į šį sąrašą įtraukite penkias eilutes.

2. Čia išraiška naudojama su operatoriumi „Kur“. Išraiška yra inp1 => inp1.Contains (“Fosfatas”). Tada naudojame „foreach“ kilpą, kad parodytume eilutes, kurias grąžina lambda išraiška.

3 pavyzdys:

Turėkime sąrašą (order_quantity), kuriame yra trys užsakymai. Nurodykite lambda išraišką, kad pridėtumėte 5 prie kiekvieno užsakymo.

naudojant Sistema ;
naudojant Sistema.Linq ;
naudojant Sistema.Kolekcijos.Bendra ;

klasė LambdaExpressionExample {

statinis viešas tuštuma Pagrindinis ( )
{

// Sukurti kiekių sąrašą
Sąrašas order_quantity = naujas Sąrašas ( ) ;
Užsakymo kiekis . Papildyti ( 5 ) ;
Užsakymo kiekis . Papildyti ( 7 ) ;
Užsakymo kiekis . Papildyti ( 8 ) ;

// Kiekvienam užsakymui naudokite LambdaExpression iki 5.
buvo rezultatas = Užsakymo kiekis . Pasirinkite ( inp1 => inp1 + 5 ) ;
kiekvienam ( buvo i in rezultatas )
{
Konsolė . WriteLine ( i ) ;
}

}
}

Išvestis:

Sąrašas [5,7,8] paverčiamas į [10,12,13].

Paaiškinimas:

1. Sukurkite Integer tipo kiekių sąrašą.

2. Pirmiausia pasirenkame užsakymus, o po to pridedame po 5 prie kiekvieno užsakymo. Taigi, naudojamas operatorius „Pasirinkti“. Išraiška yra inp1 => inp1 + 5.

4 pavyzdys:

Sukurkite įvykio tipo sąrašo duomenų šaltinį (su trimis atributais – įvykio_pavadinimas, įvykio_būsena ir įvykio_biudžetas) ir grąžinkite įrašus su įvykio_biudžetu, kuris yra didesnis nei 5000.

naudojant Sistema ;
naudojant Sistema.Linq ;
naudojant Sistema.Kolekcijos.Bendra ;

// Sukurkite klasę pavadinimu „Event_Source“ su 5 įvykiais.
viešas klasė Įvykio_šaltinis
{
viešas statinis tuštuma Pagrindinis ( )
{
// Įvykių sąrašas
IList renginiai = naujas Sąrašas ( ) {
naujas Renginys ( ) { Įvykio_pavadinimas = „Techninė stovykla“ ,Įvykio_būsena = 'Suplanuota' ,Renginio_biudžetas = 10 000 } ,
naujas Renginys ( ) { Įvykio_pavadinimas = „Marketingo stovykla“ ,Įvykio_būsena = 'Baigta' ,Renginio_biudžetas = 5000 } ,
naujas Renginys ( ) { Įvykio_pavadinimas = 'Kita' ,Įvykio_būsena = 'Suplanuota' ,Renginio_biudžetas = 1000 } ,
naujas Renginys ( ) { Įvykio_pavadinimas = 'Politika' ,Įvykio_būsena = 'Suplanuota' ,Renginio_biudžetas = 13 000 } ,
naujas Renginys ( ) { Įvykio_pavadinimas = 'Finansai' ,Įvykio_būsena = 'Baigta' ,Renginio_biudžetas = 20 000 } ,
} ;

//Įvykio_biudžetas didesnis nei 5000.
buvo rezultatas = įvykius . Kur ( inp1 => inp1 . Įvykis_Biudžetas > 5000 ) ;
kiekvienam ( buvo i in rezultatas ) {
Konsolė . WriteLine ( 'VARDAS: ' + i . Įvykio_pavadinimas + ' STATUSAS: ' + i . Įvykio_būsena + ' BIUDŽETAS: ' + i . Įvykis_Biudžetas ) ;
}
}
}

viešas klasė Renginys {
viešas styga Įvykio_pavadinimas { gauti ; rinkinys ; }
viešas styga Įvykio_būsena { gauti ; rinkinys ; }
viešas tarpt Įvykis_Biudžetas { gauti ; rinkinys ; }
}

Išvestis:

„Įvykių“ sąraše yra trys įrašai, kurių įvykių_biudžetas didesnis nei 5000.

Paaiškinimas:

1. Pirmiausia sukuriame 'Įvykio' klasę su trimis atributais.

2. Tada sudarome penkių įvykių sąrašą.

3. Naudodami inp1 => inp1.Event_Budget > 5000 lambda išraiška, pasirenkame įrašus, kurių Event_Budget didesnis nei 5000.

5 pavyzdys:

Naudokite ankstesnį kodą ir pakeiskite lambda išraišką. Pateikite įvykius naudodami Event_Name, kuris baigiasi „Stovykla“ ir „Event_Status“, kuris yra „Planuotas“.

//Lambda išraiška – įvykio_pavadinimas baigiasi „Stovykla“, o įvykio_būsena yra „Planuotas“.
buvo rezultatas = įvykius . Kur ( inp1 => inp1 . Įvykio_pavadinimas . Baigiasi su ( 'Stovykla' ) && inp1 . Įvykio_būsena == 'Suplanuota' ) ;
kiekvienam ( buvo i in rezultatas ) {
Konsolė . WriteLine ( 'VARDAS: ' + i . Įvykio_pavadinimas + ' STATUSAS: ' + i . Įvykio_būsena + ' BIUDŽETAS: ' + i . Įvykis_Biudžetas ) ;
}

Išvestis:

Yra tik vienas įrašas, atitinkantis abi sąlygas.

Paaiškinimas:

Čia mes nurodome dvi sąlygas lambda išraiškoje. Operatorius && (ir) naudojamas norint, kad abi sąlygos būtų teisingos. Pirmoji sąlyga naudoja EndsWith() metodą, kad patikrintų, ar eilutė baigiasi nurodyta eilute. Antroji sąlyga naudoja operatorių „Palyginimas“ (==), kad patikrintų, ar abi vertės yra vienodos, ar ne.

Išvada

C # kalboje lambda išraiška reiškia išraiškas / sąlyginius teiginius kaip savo kūną be pavadinimo. Turime nurodyti parametrus. Tada jam priskiriamos išraiškos. Iš esmės jie naudojami įrašams iš nurodyto duomenų šaltinio filtruoti, elementams transformuoti ir elementams pasirinkti iš duomenų šaltinio / sekos. Šiame vadove aptarėme penkis skirtingus pavyzdžius, kuriais parenkami, filtruojami ir transformuojami elementai naudojant lambda išraišką.