C# LINQ Lambda-uttrykk

C Linq Lambda Uttrykk



Lambda-uttrykk i C# tar direkte uttrykkene/betingede utsagn som kroppen uten navn. Vi må spesifisere parametrene og deretter blir uttrykkene tilordnet det. Mens du arbeider med Language Integrated Query (LINQ), kan du ha et krav om at du må transformere dataene som finnes i datakilden eller konvertere en datakilde til en annen datakilde. I denne veiledningen vil vi se hvordan du filtrerer postene fra datakilden ved å spesifisere lambda-uttrykket og velge postene fra datakilden.

Syntaks:

  1. Lambda-uttrykk: (parametere) => uttrykk
  2. Lambda-erklæring: { betinget setning1 setning2 … }

Eksempel 1:

Lag 'gjødsel'-listen som inneholder fem strenger. Bruk lambda-uttrykket som returnerer alle strengene fra listen.

ved hjelp av System ;
ved hjelp av System.Linq ;
ved hjelp av System.Samlinger.Generisk ;

klasse LambdaExpressionEksempel {

statisk offentlig tomrom Hoved ( )
{

// Lag liste over gjødsel
Liste gjødsel = ny Liste ( ) ;
gjødsel . Legg til ( 'urea' ) ;
gjødsel . Legg til ( 'nitrogen' ) ;
gjødsel . Legg til ( 'kalium' ) ;
gjødsel . Legg til ( 'Di-ammoniumfosfat' ) ;
gjødsel . Legg til ( 'fosfor' ) ;

// Bruk LambdaExpression for å velge alle gjødslene
var resultat = gjødsel . Plukke ut ( inp1 => inp1 ) ;
for hver ( var Jeg i resultat )
{
Konsoll . WriteLine ( Jeg ) ;
}

}
}

Produksjon:









Forklaring:



1. Lag en liste over strengtype kalt 'gjødsel'. Legg til fem strenger til denne listen.

2. Bruk lambda-uttrykket for å velge alle gjødslene. Her brukes uttrykket med 'Select'-operatoren. Uttrykket er inp1 => inp1. Deretter bruker vi 'foreach'-løkken for å vise strengene som returneres av lambda-uttrykket.





Eksempel 2:

Bruk lambda-uttrykket for å velge gjødsel som inkluderer 'fosfat'.

ved hjelp av System ;
ved hjelp av System.Linq ;
ved hjelp av System.Samlinger.Generisk ;

klasse LambdaExpressionEksempel {

statisk offentlig tomrom Hoved ( )
{

// Lag liste over gjødsel
Liste gjødsel = ny Liste ( ) ;
gjødsel . Legg til ( 'urea' ) ;
gjødsel . Legg til ( 'nitrogen' ) ;
gjødsel . Legg til ( 'orto - fosfat' ) ;
gjødsel . Legg til ( 'Di-ammoniumfosfat' ) ;
gjødsel . Legg til ( 'fosfor' ) ;

// Bruk LambdaExpression for å velge  gjødsel som inkluderer – «fosfat»
var resultat = gjødsel . Hvor ( inp1 => inp1 . Inneholder ( 'fosfat' ) ) ;
for hver ( var Jeg i resultat )
{
Konsoll . WriteLine ( Jeg ) ;
}

}
}

Produksjon:



Det er to strenger som inkluderer 'fosfat' i dem.

Forklaring:

1. Lag en liste over strengtype kalt 'gjødsel'. Legg til fem strenger til denne listen.

2. Her brukes uttrykket med 'Hvor'-operatoren. Uttrykket er inp1 => inp1.Contains(“Fosfat”). Deretter bruker vi 'foreach'-løkken for å vise strengene som returneres av lambda-uttrykket.

Eksempel 3:

La oss ha en liste (ordre_quantity) som inneholder tre bestillinger. Spesifiser lambda-uttrykket for å legge til 5 til hver ordre.

ved hjelp av System ;
ved hjelp av System.Linq ;
ved hjelp av System.Samlinger.Generisk ;

klasse LambdaExpressionEksempel {

statisk offentlig tomrom Hoved ( )
{

// Lag liste over mengder
List order_quantity = ny Liste ( ) ;
bestillings antall . Legg til ( 5 ) ;
bestillings antall . Legg til ( 7 ) ;
bestillings antall . Legg til ( 8 ) ;

// Bruk LambdaExpression til 5 til hver ordre.
var resultat = bestillings antall . Plukke ut ( inp1 => inp1 + 5 ) ;
for hver ( var Jeg i resultat )
{
Konsoll . WriteLine ( Jeg ) ;
}

}
}

Produksjon:

[5,7,8]-listen er transformert til [10,12,13].

Forklaring:

1. Lag listen over mengder av typen heltall.

2. Vi velger først bestillingene og legger deretter til 5 til hver bestilling. Så, 'Velg'-operatoren brukes. Uttrykket er inp1 => inp1 + 5.

Eksempel 4:

Opprett en listedatakilde av hendelsestype (med tre attributter – Event_Name, Event_Status og Event_Budget) og returner postene med Event_Budget som er større enn 5000.

ved hjelp av System ;
ved hjelp av System.Linq ;
ved hjelp av System.Samlinger.Generisk ;

// Lag en klasse kalt - 'Event_Source' med 5 hendelser.
offentlig klasse Event_Source
{
offentlig statisk tomrom Hoved ( )
{
// Hendelsesliste
IList hendelser = ny Liste ( ) {
ny Begivenhet ( ) { Arrangementsnavn = 'Teknisk leir' ,Hendelsesstatus = 'Planlagt' ,Event_Budsjett = 10 000 } ,
ny Begivenhet ( ) { Arrangementsnavn = 'Markedsføringsleir' ,Hendelsesstatus = 'Fullført' ,Event_Budsjett = 5000 } ,
ny Begivenhet ( ) { Arrangementsnavn = 'Annen' ,Hendelsesstatus = 'Planlagt' ,Event_Budsjett = 1000 } ,
ny Begivenhet ( ) { Arrangementsnavn = 'Politikk' ,Hendelsesstatus = 'Planlagt' ,Event_Budsjett = 13000 } ,
ny Begivenhet ( ) { Arrangementsnavn = 'Finansiere' ,Hendelsesstatus = 'Fullført' ,Event_Budsjett = 20 000 } ,
} ;

//Event_Budget større enn 5000.
var resultat = arrangementer . Hvor ( inp1 => inp1 . Event_Budsjett > 5000 ) ;
for hver ( var Jeg i resultat ) {
Konsoll . WriteLine ( 'NAVN: ' + Jeg . Arrangementsnavn + ' STATUS: ' + Jeg . Event_Status + ' BUDSJETT: ' + Jeg . Event_Budsjett ) ;
}
}
}

offentlig klasse Begivenhet {
offentlig streng Arrangementsnavn { ; sett ; }
offentlig streng Event_Status { ; sett ; }
offentlig int Event_Budsjett { ; sett ; }
}

Produksjon:

Det er tre poster i 'events'-listen med Event_Budget større enn 5000.

Forklaring:

1. Først lager vi en 'Event'-klasse med tre attributter.

2. Deretter lager vi en liste over fem hendelser.

3. Ved å bruke inp1 => inp1.Event_Budget > 5000 lambda-uttrykk, velger vi postene med Event_Budget større enn 5000.

Eksempel 5:

Bruk forrige kode og endre lambda-uttrykket. Returner hendelsene med Event_Name som slutter med 'Camp' og med Event_Status som er 'Planned'.

//Lambda-uttrykk - Event_Name slutter med 'Camp' og Event_Status er 'Planned'.
var resultat = arrangementer . Hvor ( inp1 => inp1 . Arrangementsnavn . Slutter med ( 'Leir' ) && inp1 . Event_Status == 'Planlagt' ) ;
for hver ( var Jeg i resultat ) {
Konsoll . WriteLine ( 'NAVN: ' + Jeg . Arrangementsnavn + ' STATUS: ' + Jeg . Event_Status + ' BUDSJETT: ' + Jeg . Event_Budsjett ) ;
}

Produksjon:

Det er kun én rekord som tilfredsstiller begge betingelsene.

Forklaring:

Her spesifiserer vi to forhold i lambda-uttrykket. Operatoren && (og) brukes til å gjøre de to betingelsene som sanne. Den første betingelsen bruker EndsWith()-metoden for å sjekke om en streng slutter med den gitte strengen. Den andre betingelsen bruker 'Sammenligning'-operatoren (==) for å sjekke om begge verdiene er like eller ikke.

Konklusjon

I C# tar lambda-uttrykket uttrykkene/betingede utsagn som sin kropp uten navn. Vi må spesifisere parametrene. Deretter blir uttrykkene tilordnet den. I utgangspunktet brukes disse til å filtrere postene fra den gitte datakilden, transformere elementene og velge elementene fra datakilden/sekvensen. I denne veiledningen diskuterte vi de fem forskjellige eksemplene som velger, filtrerer og transformerer elementene ved å bruke lambda-uttrykket.