Expressions Lambda de C# LINQ

Expressions Lambda De C Linq



L'expressió lambda en C# pren directament les expressions/instruccions condicionals com el seu cos sense nom. Hem d'especificar els paràmetres i després se li assignen les expressions. Mentre treballeu amb Language Integrated Query (LINQ), és possible que tingueu un requisit que hàgiu de transformar les dades que hi ha a la font de dades o convertir una font de dades en una altra. En aquesta guia, veurem com filtrar els registres de la font de dades especificant l'expressió lambda i seleccionant els registres de la font de dades.

Sintaxi:

  1. Expressió lambda: (paràmetres) => expressió
  2. Declaració Lambda: { declaració condicional1 declaració2 ... }

Exemple 1:

Creeu la llista de 'adobs' que contingui cinc cordes. Utilitzeu l'expressió lambda que retorna totes les cadenes de la llista.

utilitzant Sistema ;
utilitzant System.Linq ;
utilitzant System.Collections.Generic ;

classe LambdaExpressionExample {

estàtica públic buit Principal ( )
{

// Crea una llista de fertilitzants
Llista els fertilitzants = nou Llista ( ) ;
fertilitzants . Afegeix ( 'Urea' ) ;
fertilitzants . Afegeix ( 'nitrogen' ) ;
fertilitzants . Afegeix ( 'potassi' ) ;
fertilitzants . Afegeix ( 'Fosfat diamoni' ) ;
fertilitzants . Afegeix ( 'fòsfor' ) ;

// Utilitzeu LambdaExpression per seleccionar tots els fertilitzants
era resultat = fertilitzants . Seleccioneu ( inp1 => inp1 ) ;
per cadascú ( era i en resultat )
{
Consola . WriteLine ( i ) ;
}

}
}

Sortida:









Explicació:



1. Creeu una llista de tipus de corda anomenada 'fertilitzants'. Afegiu cinc cadenes a aquesta llista.

2. Utilitzeu l'expressió lambda per seleccionar tots els fertilitzants. Aquí, l'expressió s'utilitza amb l'operador 'Selecciona'. L'expressió és inp1 => inp1. A continuació, utilitzem el bucle 'foreach' per mostrar les cadenes que retornen l'expressió lambda.





Exemple 2:

Utilitzeu l'expressió lambda per seleccionar els fertilitzants que inclouen 'fosfat'.

utilitzant Sistema ;
utilitzant System.Linq ;
utilitzant System.Collections.Generic ;

classe LambdaExpressionExample {

estàtica públic buit Principal ( )
{

// Crea una llista de fertilitzants
Llista els fertilitzants = nou Llista ( ) ;
fertilitzants . Afegeix ( 'Urea' ) ;
fertilitzants . Afegeix ( 'nitrogen' ) ;
fertilitzants . Afegeix ( 'orto-fosfat' ) ;
fertilitzants . Afegeix ( 'Fosfat diamoni' ) ;
fertilitzants . Afegeix ( 'fòsfor' ) ;

// Utilitzeu LambdaExpression per seleccionar els fertilitzants que inclouen - 'Fosfat'
era resultat = fertilitzants . On ( inp1 => inp1 . Conté ( 'fosfat' ) ) ;
per cadascú ( era i en resultat )
{
Consola . WriteLine ( i ) ;
}

}
}

Sortida:



Hi ha dues cadenes que inclouen 'fosfat'.

Explicació:

1. Creeu una llista de tipus de corda anomenada 'fertilitzants'. Afegiu cinc cadenes a aquesta llista.

2. Aquí, l'expressió s'utilitza amb l'operador “On”. L'expressió és inp1 => inp1.Conté ('Fosfat'). A continuació, utilitzem el bucle 'foreach' per mostrar les cadenes que retornen l'expressió lambda.

Exemple 3:

Tinguem una llista (order_quantity) que conté tres comandes. Especifiqueu l'expressió lambda per afegir 5 a cada comanda.

utilitzant Sistema ;
utilitzant System.Linq ;
utilitzant System.Collections.Generic ;

classe LambdaExpressionExample {

estàtica públic buit Principal ( )
{

// Crea una llista de quantitats
Llista order_quantity = nou Llista ( ) ;
quantitat_ordre . Afegeix ( 5 ) ;
quantitat_ordre . Afegeix ( 7 ) ;
quantitat_ordre . Afegeix ( 8 ) ;

// Utilitzeu LambdaExpression a 5 per a cada comanda.
era resultat = quantitat_ordre . Seleccioneu ( inp1 => inp1 + 5 ) ;
per cadascú ( era i en resultat )
{
Consola . WriteLine ( i ) ;
}

}
}

Sortida:

La llista [5,7,8] es transforma a [10,12,13].

Explicació:

1. Creeu la llista de quantitats de tipus Enter.

2. Seleccionem primer les comandes i després afegim 5 a cada comanda. Per tant, s'utilitza l'operador 'Seleccionar'. L'expressió és inp1 => inp1 + 5.

Exemple 4:

Creeu una font de dades de llista del tipus d'esdeveniment (amb tres atributs: Nom_Event, Estat_Event i Pressupost_Event) i torneu els registres amb el Pressupost_Event que és superior a 5000.

utilitzant Sistema ;
utilitzant System.Linq ;
utilitzant System.Collections.Generic ;

// Creeu una classe anomenada - 'Event_Source' amb 5 esdeveniments.
públic classe Event_source
{
públic estàtica buit Principal ( )
{
// Llista d'esdeveniments
Esdeveniments de la llista = nou Llista ( ) {
nou Esdeveniment ( ) { Nom_de l'esdeveniment = 'Campament tècnic' ,Estat_esdeveniment = 'Planificat' ,Event_Pressupost = 10000 } ,
nou Esdeveniment ( ) { Nom_de l'esdeveniment = 'Camp de màrqueting' ,Estat_esdeveniment = 'Completat' ,Event_Pressupost = 5000 } ,
nou Esdeveniment ( ) { Nom_de l'esdeveniment = 'Un altre' ,Estat_esdeveniment = 'Planificat' ,Event_Pressupost = 1000 } ,
nou Esdeveniment ( ) { Nom_de l'esdeveniment = 'Política' ,Estat_esdeveniment = 'Planificat' ,Event_Pressupost = 13000 } ,
nou Esdeveniment ( ) { Nom_de l'esdeveniment = 'Finances' ,Estat_esdeveniment = 'Completat' ,Event_Pressupost = 20000 } ,
} ;

//Event_Budget superior a 5000.
era resultat = esdeveniments . On ( inp1 => inp1 . Pressupost_esdeveniment > 5000 ) ;
per cadascú ( era i en resultat ) {
Consola . WriteLine ( 'NOM: ' + i . Nom_de l'esdeveniment + ' ESTAT: ' + i . Estat_de l'esdeveniment + ' PRESSUPOST: ' + i . Pressupost_esdeveniment ) ;
}
}
}

públic classe Esdeveniment {
públic corda Nom_de l'esdeveniment { aconseguir ; conjunt ; }
públic corda Estat_de l'esdeveniment { aconseguir ; conjunt ; }
públic int Pressupost_esdeveniment { aconseguir ; conjunt ; }
}

Sortida:

Hi ha tres registres a la llista 'esdeveniments' amb el pressupost d'esdeveniments superior a 5000.

Explicació:

1. Primer, creem una classe 'Esdeveniment' amb tres atributs.

2. Aleshores, creem una llista de cinc esdeveniments.

3. Utilitzant el inp1 => inp1.Pressupost_Event > 5000 expressió lambda, seleccionem els registres amb Event_Budget superior a 5000.

Exemple 5:

Utilitzeu el codi anterior i canvieu l'expressió lambda. Retorna els esdeveniments amb Event_Name que acaba amb 'Camp' i amb Event_Status que és 'Planned'.

//Expressió Lambda - Event_Name acaba amb 'Camp' i Event_Status és 'Planned'.
era resultat = esdeveniments . On ( inp1 => inp1 . Nom_de l'esdeveniment . Acaba amb ( 'Campament' ) && inp1 . Estat_de l'esdeveniment == 'Planificat' ) ;
per cadascú ( era i en resultat ) {
Consola . WriteLine ( 'NOM: ' + i . Nom_de l'esdeveniment + ' ESTAT: ' + i . Estat_de l'esdeveniment + ' PRESSUPOST: ' + i . Pressupost_esdeveniment ) ;
}

Sortida:

Només hi ha un registre que compleix ambdues condicions.

Explicació:

Aquí, especifiquem dues condicions a l'expressió lambda. L'operador && (i) s'utilitza per fer que les dues condicions siguin True. La primera condició utilitza el mètode EndsWith() per comprovar si una cadena acaba amb la cadena donada. La segona condició utilitza l'operador 'Comparació' (==) per comprovar si els dos valors són iguals o no.

Conclusió

En C#, l'expressió lambda pren les expressions/instruccions condicionals com a cos sense nom. Hem d'especificar els paràmetres. Aleshores, se li assignen les expressions. Bàsicament, s'utilitzen per filtrar els registres de la font de dades donada, transformar els elements i seleccionar els elements de la font/seqüència de dades. En aquesta guia, hem comentat els cinc exemples diferents que seleccionen, filtren i transformen els elements mitjançant l'expressió lambda.