Sintaxă:
- Expresia Lambda: (parametri) => expresie
- 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.