C# LINQ Lambda Expressions

C Linq Lambda Expressions



Expresia Lambda în C# ia direct expresiile/instrucțiunile condiționate ca corp fără nume. Trebuie să specificăm parametrii și apoi îi sunt alocate expresiile. În timp ce lucrați cu Language Integrated Query (LINQ), este posibil să aveți o cerință de a transforma datele care sunt prezente în sursa de date sau de a converti o sursă de date într-o altă sursă de date. În acest ghid, vom vedea cum să filtram înregistrările din sursa de date prin specificarea expresiei lambda și să selectăm înregistrările din sursa de date.

Sintaxă:

  1. Expresia Lambda: (parametri) => expresie
  2. Declarație Lambda: { statement conditional1 statement2 … }

Exemplul 1:

Creați lista de „îngrășăminte” care conține cinci șiruri. Utilizați expresia lambda care returnează toate șirurile din listă.

folosind Sistem ;
folosind System.Linq ;
folosind Sistem.Colecții.Generic ;

clasă LambdaExpressionExample {

static public vid Principal ( )
{

// Creați o listă de îngrășăminte
Listați îngrășămintele = nou Listă ( ) ;
îngrășăminte . Adăuga ( 'Uree' ) ;
îngrășăminte . Adăuga ( 'azot' ) ;
îngrășăminte . Adăuga ( 'potasiu' ) ;
îngrășăminte . Adăuga ( 'Fosfat de diamoniu' ) ;
îngrășăminte . Adăuga ( 'fosfor' ) ;

// Folosiți LambdaExpression pentru a selecta toate îngrășămintele
a fost rezultat = îngrășăminte . Selectați ( inp1 => inp1 ) ;
pentru fiecare ( a fost i în rezultat )
{
Consolă . WriteLine ( i ) ;
}

}
}

Ieșire:









Explicaţie:



1. Creați o listă de tip șir numită „îngrășăminte”. Adăugați cinci șiruri la această listă.

2. Utilizați expresia lambda pentru a selecta toate îngrășămintele. Aici, expresia este folosită cu operatorul „Select”. Expresia este inp1 => inp1. Apoi, folosim bucla „foreach” pentru a afișa șirurile care sunt returnate de expresia lambda.





Exemplul 2:

Utilizați expresia lambda pentru a selecta îngrășămintele care includ „fosfat”.

folosind Sistem ;
folosind System.Linq ;
folosind Sistem.Colecții.Generic ;

clasă LambdaExpressionExample {

static public vid Principal ( )
{

// Creați o listă de îngrășăminte
Listați îngrășămintele = nou Listă ( ) ;
îngrășăminte . Adăuga ( 'Uree' ) ;
îngrășăminte . Adăuga ( 'azot' ) ;
îngrășăminte . Adăuga ( 'orto - fosfat' ) ;
îngrășăminte . Adăuga ( 'Fosfat de diamoniu' ) ;
îngrășăminte . Adăuga ( 'fosfor' ) ;

// Folosiți LambdaExpression pentru a selecta  îngrășămintele care includ - „Fosfat”
a fost rezultat = îngrășăminte . Unde ( inp1 => inp1 . Conține ( 'Fosfat' ) ) ;
pentru fiecare ( a fost i în rezultat )
{
Consolă . WriteLine ( i ) ;
}

}
}

Ieșire:



Există două șiruri care includ „fosfat” în ele.

Explicaţie:

1. Creați o listă de tip șir numită „îngrășăminte”. Adăugați cinci șiruri la această listă.

2. Aici, expresia este folosită cu operatorul „Unde”. Expresia este inp1 => inp1.Contine ('Fosfat'). Apoi, folosim bucla „foreach” pentru a afișa șirurile care sunt returnate de expresia lambda.

Exemplul 3:

Să avem o listă (order_quantity) care conține trei comenzi. Specificați expresia lambda pentru a adăuga 5 la fiecare comandă.

folosind Sistem ;
folosind System.Linq ;
folosind Sistem.Colecții.Generic ;

clasă LambdaExpressionExample {

static public vid Principal ( )
{

// Creați o listă de cantități
Listați cantitatea_comandă = nou Listă ( ) ;
Cantitatea de comandă . Adăuga ( 5 ) ;
Cantitatea de comandă . Adăuga ( 7 ) ;
Cantitatea de comandă . Adăuga ( 8 ) ;

// Folosiți LambdaExpression la 5 pentru fiecare comandă.
a fost rezultat = Cantitatea de comandă . Selectați ( inp1 => inp1 + 5 ) ;
pentru fiecare ( a fost i în rezultat )
{
Consolă . WriteLine ( i ) ;
}

}
}

Ieșire:

Lista [5,7,8] este transformată în [10,12,13].

Explicaţie:

1. Creați lista de cantități de tip Integer.

2. Selectăm mai întâi comenzile și apoi adăugăm câte 5 la fiecare comandă. Deci, se folosește operatorul „Select”. Expresia este inp1 => inp1 + 5.

Exemplul 4:

Creați o sursă de date listă de tip Eveniment (cu trei atribute – Nume_Eveniment, Stare_Eveniment și Buget_Eveniment) și returnați înregistrările cu Buget_Eveniment care este mai mare de 5000.

folosind Sistem ;
folosind System.Linq ;
folosind Sistem.Colecții.Generic ;

// Creați o clasă numită - „Event_Source” cu 5 evenimente.
public clasă Event_Surse
{
public static vid Principal ( )
{
// Lista de evenimente
Lista evenimentelor = nou Listă ( ) {
nou Eveniment ( ) { Numele evenimentului = „Tabăra tehnică” ,Stare_Eveniment = 'Planificat' ,Buget_Eveniment = 10000 } ,
nou Eveniment ( ) { Numele evenimentului = „Tabăra de marketing” ,Stare_Eveniment = 'Efectuat' ,Buget_Eveniment = 5000 } ,
nou Eveniment ( ) { Numele evenimentului = 'Alte' ,Stare_Eveniment = 'Planificat' ,Buget_Eveniment = 1000 } ,
nou Eveniment ( ) { Numele evenimentului = 'Politică' ,Stare_Eveniment = 'Planificat' ,Buget_Eveniment = 13000 } ,
nou Eveniment ( ) { Numele evenimentului = 'Finanţa' ,Stare_Eveniment = 'Efectuat' ,Buget_Eveniment = 20000 } ,
} ;

//Event_Buget mai mare de 5000.
a fost rezultat = evenimente . Unde ( inp1 => inp1 . Buget_eveniment > 5000 ) ;
pentru fiecare ( a fost i în rezultat ) {
Consolă . WriteLine ( 'NUME: ' + i . Numele evenimentului + ' STARE: ' + i . Eveniment_Stare + ' BUGET: ' + i . Buget_eveniment ) ;
}
}
}

public clasă Eveniment {
public şir Numele evenimentului { obține ; a stabilit ; }
public şir Eveniment_Stare { obține ; a stabilit ; }
public int Buget_eveniment { obține ; a stabilit ; }
}

Ieșire:

Există trei înregistrări în lista „evenimente” cu Event_Budget mai mare de 5000.

Explicaţie:

1. Mai întâi, creăm o clasă „Eveniment” cu trei atribute.

2. Apoi, creăm o listă de cinci evenimente.

3. Folosind inp1 => inp1.Buget_eveniment > 5000 expresie lambda, selectăm înregistrările cu Event_Budget mai mare de 5000.

Exemplul 5:

Utilizați codul anterior și modificați expresia lambda. Returnează evenimentele cu Event_Name care se termină cu „Camp” și cu Event_Status care este „Planned”.

//Expresie Lambda - Event_Name se termină cu „Camp” și Event_Status este „Planned”.
a fost rezultat = evenimente . Unde ( inp1 => inp1 . Numele evenimentului . Se termină cu ( 'Tabără' ) && inp1 . Eveniment_Stare == 'Planificat' ) ;
pentru fiecare ( a fost i în rezultat ) {
Consolă . WriteLine ( 'NUME: ' + i . Numele evenimentului + ' STARE: ' + i . Eveniment_Stare + ' BUGET: ' + i . Buget_eveniment ) ;
}

Ieșire:

Există o singură înregistrare care îndeplinește ambele condiții.

Explicaţie:

Aici, specificăm două condiții în expresia lambda. Operatorul && (și) este folosit pentru a face ca cele două condiții să fie adevărate. Prima condiție folosește metoda EndsWith() pentru a verifica dacă un șir se termină cu șirul dat. A doua condiție folosește operatorul „Comparație” (==) pentru a verifica dacă ambele valori sunt egale sau nu.

Concluzie

În C#, expresia lambda ia expresiile/instrucțiunile condiționate ca corp fără nume. Trebuie să specificăm parametrii. Apoi, i se atribuie expresiile. Practic, acestea sunt folosite pentru a filtra înregistrările din sursa de date dată, pentru a transforma elementele și pentru a selecta elementele din sursa/secvența de date. În acest ghid, am discutat cele cinci exemple diferite care selectează, filtrează și transformă elementele folosind expresia lambda.