C# LINQ Lambda-udtryk

C Linq Lambda Udtryk



Lambda-udtryk i C# tager direkte udtrykkene/betingede udsagn som sin krop uden navn. Vi skal specificere parametrene og derefter tildeles udtrykkene til det. Mens du arbejder med Language Integrated Query (LINQ), kan du have et krav om, at du skal transformere de data, der er til stede i datakilden, eller konvertere en datakilde til en anden datakilde. I denne vejledning vil vi se, hvordan du filtrerer posterne fra datakilden ved at angive lambda-udtrykket og vælge posterne fra datakilden.

Syntaks:

  1. Lambda udtryk: (parametre) => udtryk
  2. Lambda-erklæring: { betinget udsagn1 udsagn2 … }

Eksempel 1:

Opret 'gødningslisten', der indeholder fem strenge. Brug lambda-udtrykket, der returnerer alle strengene fra listen.

ved brug af System ;
ved brug af System.Linq ;
ved brug af System.Collectioner.Generisk ;

klasse LambdaExpressionEksempel {

statisk offentlig ugyldig Hoved ( )
{

// Opret liste over gødninger
Liste gødninger = ny Liste ( ) ;
gødning . Tilføje ( 'urea' ) ;
gødning . Tilføje ( 'nitrogen' ) ;
gødning . Tilføje ( 'kalium' ) ;
gødning . Tilføje ( 'Di-ammoniumfosfat' ) ;
gødning . Tilføje ( 'fosfor' ) ;

// Brug LambdaExpression til at vælge alle gødningerne
var resultat = gødning . Vælg ( inp1 => inp1 ) ;
for hver ( var jeg i resultat )
{
Konsol . WriteLine ( jeg ) ;
}

}
}

Produktion:









Forklaring:



1. Opret en liste over strengtype med navnet 'gødning'. Tilføj fem strenge til denne liste.

2. Brug lambda-udtrykket til at vælge alle gødningerne. Her bruges udtrykket med operatoren 'Vælg'. Udtrykket er inp1 => inp1. Derefter bruger vi 'foreach'-løkken til at vise de strenge, der returneres af lambda-udtrykket.





Eksempel 2:

Brug lambda-udtrykket til at vælge de gødninger, der indeholder 'fosfat'.

ved brug af System ;
ved brug af System.Linq ;
ved brug af System.Collectioner.Generisk ;

klasse LambdaExpressionEksempel {

statisk offentlig ugyldig Hoved ( )
{

// Opret liste over gødninger
Liste gødninger = ny Liste ( ) ;
gødning . Tilføje ( 'urea' ) ;
gødning . Tilføje ( 'nitrogen' ) ;
gødning . Tilføje ( 'ortho - fosfat' ) ;
gødning . Tilføje ( 'Di-ammoniumfosfat' ) ;
gødning . Tilføje ( 'fosfor' ) ;

// Brug LambdaExpression til at vælge de  gødninger, der inkluderer - 'phosphate'
var resultat = gødning . Hvor ( inp1 => inp1 . Indeholder ( 'fosfat' ) ) ;
for hver ( var jeg i resultat )
{
Konsol . WriteLine ( jeg ) ;
}

}
}

Produktion:



Der er to strenge, der inkluderer 'Phosphate' i dem.

Forklaring:

1. Opret en liste over strengtype med navnet 'gødning'. Tilføj fem strenge til denne liste.

2. Her bruges udtrykket med operatoren 'Hvor'. Udtrykket er inp1 => inp1.Indeholder(“Phosphate”). Derefter bruger vi 'foreach'-løkken til at vise de strenge, der returneres af lambda-udtrykket.

Eksempel 3:

Lad os have en liste (ordre_quantity), der indeholder tre ordrer. Angiv lambda-udtrykket for at tilføje 5 til hver ordre.

ved brug af System ;
ved brug af System.Linq ;
ved brug af System.Collectioner.Generisk ;

klasse LambdaExpressionEksempel {

statisk offentlig ugyldig Hoved ( )
{

// Opret liste over mængder
Liste ordre_mængde = ny Liste ( ) ;
ordre Antal . Tilføje ( 5 ) ;
ordre Antal . Tilføje ( 7 ) ;
ordre Antal . Tilføje ( 8 ) ;

// Brug LambdaExpression til 5 til hver ordre.
var resultat = ordre Antal . Vælg ( inp1 => inp1 + 5 ) ;
for hver ( var jeg i resultat )
{
Konsol . WriteLine ( jeg ) ;
}

}
}

Produktion:

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

Forklaring:

1. Opret listen over mængder af typen heltal.

2. Vi vælger først ordrerne og tilføjer derefter 5 til hver ordre. Så operatoren 'Vælg' bruges. Udtrykket er inp1 => inp1 + 5.

Eksempel 4:

Opret en listedatakilde af hændelsestypen (med tre attributter – Event_Name, Event_Status og Event_Budget) og returner posterne med Event_Budget, som er større end 5000.

ved brug af System ;
ved brug af System.Linq ;
ved brug af System.Collectioner.Generisk ;

// Opret en klasse ved navn - 'Event_Source' med 5 hændelser.
offentlig klasse Event_Source
{
offentlig statisk ugyldig Hoved ( )
{
// Begivenhedsliste
IList begivenheder = ny Liste ( ) {
ny Begivenhed ( ) { Hændelsesnavn = 'Teknisk lejr' ,Begivenhedsstatus = 'Planlagt' ,Begivenhed_Budget = 10.000 } ,
ny Begivenhed ( ) { Hændelsesnavn = 'Markedsføringslejr' ,Begivenhedsstatus = 'Afsluttet' ,Begivenhed_Budget = 5000 } ,
ny Begivenhed ( ) { Hændelsesnavn = 'Andet' ,Begivenhedsstatus = 'Planlagt' ,Begivenhed_Budget = 1000 } ,
ny Begivenhed ( ) { Hændelsesnavn = 'Politik' ,Begivenhedsstatus = 'Planlagt' ,Begivenhed_Budget = 13000 } ,
ny Begivenhed ( ) { Hændelsesnavn = 'Finansiere' ,Begivenhedsstatus = 'Afsluttet' ,Begivenhed_Budget = 20.000 } ,
} ;

//Event_Budget større end 5000.
var resultat = begivenheder . Hvor ( inp1 => inp1 . Event_Budget > 5000 ) ;
for hver ( var jeg i resultat ) {
Konsol . WriteLine ( 'NAVN: ' + jeg . Hændelsesnavn + ' STATUS: ' + jeg . Hændelsesstatus + 'BUDGET:' + jeg . Event_Budget ) ;
}
}
}

offentlig klasse Begivenhed {
offentlig snor Hændelsesnavn { ; sæt ; }
offentlig snor Hændelsesstatus { ; sæt ; }
offentlig int Event_Budget { ; sæt ; }
}

Produktion:

Der er tre poster på 'begivenheder'-listen med Event_Budget større end 5000.

Forklaring:

1. Først opretter vi en 'Begivenhed'-klasse med tre attributter.

2. Derefter opretter vi en liste med fem begivenheder.

3. Brug af inp1 => inp1.Event_Budget > 5000 lambda-udtryk, vælger vi posterne med Event_Budget større end 5000.

Eksempel 5:

Brug den forrige kode og skift lambda-udtrykket. Returner begivenhederne med Event_Name, der slutter med 'Camp' og med Event_Status, som er 'Planned'.

//Lambda-udtryk - Event_Name slutter med 'Camp' og Event_Status er 'Planned'.
var resultat = begivenheder . Hvor ( inp1 => inp1 . Hændelsesnavn . Slutter Med ( 'Lejr' ) && inp1 . Hændelsesstatus == 'Planlagt' ) ;
for hver ( var jeg i resultat ) {
Konsol . WriteLine ( 'NAVN: ' + jeg . Hændelsesnavn + ' STATUS: ' + jeg . Hændelsesstatus + 'BUDGET:' + jeg . Event_Budget ) ;
}

Produktion:

Der er kun én rekord, der opfylder begge betingelser.

Forklaring:

Her specificerer vi to betingelser i lambda-udtrykket. Operatoren && (og) bruges til at gøre de to betingelser som Sande. Den første betingelse bruger EndsWith()-metoden til at kontrollere, om en streng slutter med den givne streng. Den anden betingelse bruger operatoren 'Sammenligning' (==) til at kontrollere, om begge værdier er ens eller ej.

Konklusion

I C# tager lambda-udtrykket udtrykkene/betingede udsagn som sin krop uden navn. Vi skal specificere parametrene. Derefter tildeles udtrykkene det. Grundlæggende bruges disse til at filtrere posterne fra den givne datakilde, transformere elementerne og vælge elementerne fra datakilden/sekvensen. I denne guide diskuterede vi de fem forskellige eksempler, der udvælger, filtrerer og transformerer elementerne ved hjælp af lambda-udtrykket.