Lambda izrazi C# LINQ

Lambda Izrazi C Linq



Lambda izraz v C# neposredno vzame izraze/pogojne stavke kot svoje telo brez imena. Določiti moramo parametre in nato so mu dodeljeni izrazi. Med delom z jezikovno integrirano poizvedbo (LINQ) boste morda morali preoblikovati podatke, ki so prisotni v viru podatkov, ali pretvoriti en vir podatkov v drug vir podatkov. V tem priročniku bomo videli, kako filtrirati zapise iz vira podatkov tako, da določite lambda izraz in izberete zapise iz vira podatkov.

Sintaksa:

  1. Lambda izraz: (parametri) => izraz
  2. Lambda izjava: { pogojni stavek1 stavek2 … }

Primer 1:

Ustvarite seznam 'gnojil', ki vsebuje pet nizov. Uporabite lambda izraz, ki vrne vse nize s seznama.

uporabo Sistem ;
uporabo System.Linq ;
uporabo System.Collections.Generic ;

razred LambdaExpressionExample {

statična javnosti praznina Glavni ( )
{

// Ustvari seznam gnojil
Seznam gnojil = novo Seznam ( ) ;
gnojila . Dodaj ( 'sečnina' ) ;
gnojila . Dodaj ( 'dušik' ) ;
gnojila . Dodaj ( 'kalij' ) ;
gnojila . Dodaj ( 'Di-amonijev fosfat' ) ;
gnojila . Dodaj ( 'fosfor' ) ;

// Uporabite LambdaExpression za izbiro vseh gnojil
je bil rezultat = gnojila . Izberite ( inp1 => inp1 ) ;
za vsakogar ( je bil jaz v rezultat )
{
Konzola . WriteLine ( jaz ) ;
}

}
}

Izhod:









Pojasnilo:



1. Ustvarite seznam vrste nizov z imenom 'gnojila'. Na ta seznam dodajte pet nizov.

2. Uporabite lambda izraz za izbiro vseh gnojil. Tukaj se izraz uporablja z operatorjem »Izberi«. Izraz je inp1 => inp1. Nato uporabimo zanko »foreach« za prikaz nizov, ki jih vrne lambda izraz.





Primer 2:

Uporabite lambda izraz za izbiro gnojil, ki vsebujejo 'fosfat'.

uporabo Sistem ;
uporabo System.Linq ;
uporabo System.Collections.Generic ;

razred LambdaExpressionExample {

statična javnosti praznina Glavni ( )
{

// Ustvari seznam gnojil
Seznam gnojil = novo Seznam ( ) ;
gnojila . Dodaj ( 'sečnina' ) ;
gnojila . Dodaj ( 'dušik' ) ;
gnojila . Dodaj ( 'orto - fosfat' ) ;
gnojila . Dodaj ( 'Di-amonijev fosfat' ) ;
gnojila . Dodaj ( 'fosfor' ) ;

// Uporabite LambdaExpression za izbiro  gnojil, ki vključujejo - 'fosfat'
je bil rezultat = gnojila . Kje ( inp1 => inp1 . Vsebuje ( 'fosfat' ) ) ;
za vsakogar ( je bil jaz v rezultat )
{
Konzola . WriteLine ( jaz ) ;
}

}
}

Izhod:



Obstajata dva niza, ki vsebujeta 'fosfat'.

Pojasnilo:

1. Ustvarite seznam vrste nizov z imenom 'gnojila'. Na ta seznam dodajte pet nizov.

2. Tukaj se izraz uporablja z operatorjem »Where«. Izraz je inp1 => inp1.Contains(“fosfat”). Nato uporabimo zanko »foreach« za prikaz nizov, ki jih vrne lambda izraz.

Primer 3:

Imejmo seznam (order_quantity), ki vsebuje tri naročila. Podajte lambda izraz, da vsakemu naročilu dodate 5.

uporabo Sistem ;
uporabo System.Linq ;
uporabo System.Collections.Generic ;

razred LambdaExpressionExample {

statična javnosti praznina Glavni ( )
{

// Ustvari seznam količin
Navedite naročilo_količina = novo Seznam ( ) ;
količina_naročila . Dodaj ( 5 ) ;
količina_naročila . Dodaj ( 7 ) ;
količina_naročila . Dodaj ( 8 ) ;

// Uporabi LambdaExpression za 5 za vsako naročilo.
je bil rezultat = količina_naročila . Izberite ( inp1 => inp1 + 5 ) ;
za vsakogar ( je bil jaz v rezultat )
{
Konzola . WriteLine ( jaz ) ;
}

}
}

Izhod:

Seznam [5,7,8] se spremeni v [10,12,13].

Pojasnilo:

1. Ustvarite seznam količin tipa Integer.

2. Najprej izberemo naročila in nato vsakemu naročilu dodamo 5. Uporabljen je torej operator »Izberi«. Izraz je inp1 => inp1 + 5.

Primer 4:

Ustvarite vir podatkov seznama tipa Event (s tremi atributi – Event_Name, Event_Status in Event_Budget) in vrnite zapise z Event_Budget, ki je večji od 5000.

uporabo Sistem ;
uporabo System.Linq ;
uporabo System.Collections.Generic ;

// Ustvarite razred z imenom - 'Event_Source' s 5 dogodki.
javnosti razred Vir_dogodka
{
javnosti statična praznina Glavni ( )
{
// Seznam dogodkov
Seznam dogodkov = novo Seznam ( ) {
novo Dogodek ( ) { Ime_dogodka = 'Tehnični kamp' ,Event_Status = 'Načrtovano' ,Event_Budget = 10000 } ,
novo Dogodek ( ) { Ime_dogodka = 'Marketinški kamp' ,Event_Status = 'Dokončano' ,Event_Budget = 5000 } ,
novo Dogodek ( ) { Ime_dogodka = 'drugo' ,Event_Status = 'Načrtovano' ,Event_Budget = 1000 } ,
novo Dogodek ( ) { Ime_dogodka = 'Politika' ,Event_Status = 'Načrtovano' ,Event_Budget = 13000 } ,
novo Dogodek ( ) { Ime_dogodka = 'Finance' ,Event_Status = 'Dokončano' ,Event_Budget = 20000 } ,
} ;

//Event_Budget večji od 5000.
je bil rezultat = dogodkov . Kje ( inp1 => inp1 . Event_Budget > 5000 ) ;
za vsakogar ( je bil jaz v rezultat ) {
Konzola . WriteLine ( 'IME: ' + jaz . Ime_dogodka + ' STANJE: ' + jaz . Status_dogodka + ' PRORAČUN: ' + jaz . Event_Budget ) ;
}
}
}

javnosti razred Dogodek {
javnosti vrvica Ime_dogodka { dobiti ; set ; }
javnosti vrvica Status_dogodka { dobiti ; set ; }
javnosti int Event_Budget { dobiti ; set ; }
}

Izhod:

Na seznamu »dogodkov« so trije zapisi, katerih Event_Budget je večji od 5000.

Pojasnilo:

1. Najprej ustvarimo razred »Event« s tremi atributi.

2. Nato ustvarimo seznam petih dogodkov.

3. Uporaba inp1 => inp1.Event_Budget > 5000 lambda izraz, izberemo zapise z Event_Budget večjim od 5000.

Primer 5:

Uporabite prejšnjo kodo in spremenite lambda izraz. Vrnite dogodke z Event_Name, ki se konča z 'Camp' in s Event_Status, ki je 'Planned'.

//Lambda izraz - Ime_dogodka se konča s 'Tabor' in Status_dogodka je 'Planirano'.
je bil rezultat = dogodkov . Kje ( inp1 => inp1 . Ime_dogodka . Konča z ( 'tabor' ) && inp1 . Status_dogodka == 'Načrtovano' ) ;
za vsakogar ( je bil jaz v rezultat ) {
Konzola . WriteLine ( 'IME: ' + jaz . Ime_dogodka + ' STANJE: ' + jaz . Status_dogodka + ' PRORAČUN: ' + jaz . Event_Budget ) ;
}

Izhod:

Obstaja le en zapis, ki izpolnjuje oba pogoja.

Pojasnilo:

Tukaj podajamo dva pogoja v lambda izrazu. Operator && (in) se uporablja, da oba pogoja postaneta True. Prvi pogoj uporablja metodo EndsWith(), da preveri, ali se niz konča z danim nizom. Drugi pogoj uporablja operator »Primerjava« (==), da preveri, ali sta obe vrednosti enaki ali ne.

Zaključek

V C# izraz lambda sprejme izraze/pogojne stavke kot svoje telo brez imena. Določiti moramo parametre. Nato so mu dodeljeni izrazi. V bistvu se uporabljajo za filtriranje zapisov iz danega vira podatkov, preoblikovanje elementov in izbiro elementov iz vira podatkov/zaporedja. V tem priročniku smo razpravljali o petih različnih primerih, ki izbirajo, filtrirajo in preoblikujejo elemente z uporabo lambda izraza.