Syntax:
- Lambda výraz: (parametre) => výraz
- Vyhlásenie lambda: { podmienený príkaz1 príkaz2 … }
Príklad 1:
Vytvorte zoznam „hnojív“, ktorý obsahuje päť reťazcov. Využite výraz lambda, ktorý vráti všetky reťazce zo zoznamu.
použitím Systém ;použitím System.Linq ;
použitím System.Collections.Generic ;
trieda Príklad výrazu lambda {
statické verejnosti neplatné Hlavná ( )
{
// Vytvorenie zoznamu hnojív
Uveďte hnojivá = Nový Zoznam ( ) ;
hnojivá . Pridať ( 'močovina' ) ;
hnojivá . Pridať ( 'dusík' ) ;
hnojivá . Pridať ( 'draslík' ) ;
hnojivá . Pridať ( 'Di-amóniumfosfát' ) ;
hnojivá . Pridať ( 'fosfor' ) ;
// Použite LambdaExpression na výber všetkých hnojív
bol výsledok = hnojivá . Vyberte ( inp1 => inp1 ) ;
pre každý ( bol i v výsledok )
{
Konzola . WriteLine ( i ) ;
}
}
}
Výkon:
Vysvetlenie:
1. Vytvorte zoznam typov reťazcov s názvom „hnojivá“. Pridajte päť reťazcov do tohto zoznamu.
2. Pomocou výrazu lambda vyberte všetky hnojivá. Tu sa výraz používa s operátorom „Vybrať“. Výraz je inp1 => inp1. Potom použijeme cyklus „foreach“ na zobrazenie reťazcov, ktoré vráti výraz lambda.
Príklad 2:
Použite výraz lambda na výber hnojív, ktoré obsahujú „fosfát“.
použitím Systém ;použitím System.Linq ;
použitím System.Collections.Generic ;
trieda Príklad výrazu lambda {
statické verejnosti neplatné Hlavná ( )
{
// Vytvorenie zoznamu hnojív
Uveďte hnojivá = Nový Zoznam ( ) ;
hnojivá . Pridať ( 'močovina' ) ;
hnojivá . Pridať ( 'dusík' ) ;
hnojivá . Pridať ( 'orto-fosfát' ) ;
hnojivá . Pridať ( 'Di-amóniumfosfát' ) ;
hnojivá . Pridať ( 'fosfor' ) ;
// Pomocou LambdaExpression vyberte hnojivá, ktoré zahŕňajú - 'Phosphate'
bol výsledok = hnojivá . Kde ( inp1 => inp1 . Obsahuje ( 'fosfát' ) ) ;
pre každý ( bol i v výsledok )
{
Konzola . WriteLine ( i ) ;
}
}
}
Výkon:
Existujú dva reťazce, ktoré obsahujú „fosfát“.
Vysvetlenie:
1. Vytvorte zoznam typov reťazcov s názvom „hnojivá“. Pridajte päť reťazcov do tohto zoznamu.
2. Tu sa výraz používa s operátorom „Kde“. Výraz je inp1 => inp1.Contains(“Phosphate”). Potom použijeme cyklus „foreach“ na zobrazenie reťazcov, ktoré vráti výraz lambda.
Príklad 3:
Majme zoznam (množstvo_objednávok), ktorý obsahuje tri objednávky. Ak chcete ku každej objednávke pridať 5, zadajte výraz lambda.
použitím Systém ;použitím System.Linq ;
použitím System.Collections.Generic ;
trieda Príklad výrazu lambda {
statické verejnosti neplatné Hlavná ( )
{
// Vytvorenie zoznamu veličín
Uveďte množstvo objednávky = Nový Zoznam ( ) ;
Objednané množstvo . Pridať ( 5 ) ;
Objednané množstvo . Pridať ( 7 ) ;
Objednané množstvo . Pridať ( 8 ) ;
// Použite LambdaExpression na 5 pre každú objednávku.
bol výsledok = Objednané množstvo . Vyberte ( inp1 => inp1 + 5 ) ;
pre každý ( bol i v výsledok )
{
Konzola . WriteLine ( i ) ;
}
}
}
Výkon:
Zoznam [5,7,8] sa transformuje na [10,12,13].
Vysvetlenie:
1. Vytvorte zoznam veličín typu Integer.
2. Objednávky najskôr vyberieme a potom ku každej objednávke pridáme 5. Používa sa teda operátor „Select“. Výraz je inp1 => inp1 + 5.
Príklad 4:
Vytvorte zdroj údajov zoznamu typu Event (s tromi atribútmi – Event_Name, Event_Status a Event_Budget) a vráťte záznamy s Event_Budget, ktorý je väčší ako 5000.
použitím Systém ;použitím System.Linq ;
použitím System.Collections.Generic ;
// Vytvorte triedu s názvom - 'Event_Source' s 5 udalosťami.
verejnosti trieda Event_Source
{
verejnosti statické neplatné Hlavná ( )
{
// Zoznam udalostí
IList udalosti = Nový Zoznam ( ) {
Nový Udalosť ( ) { Event_Name = 'Technický tábor' ,Stav_udalosti = 'Plánované' ,Event_Budget = 10 000 } ,
Nový Udalosť ( ) { Event_Name = 'Marketingový tábor' ,Stav_udalosti = 'Dokončené' ,Event_Budget = 5000 } ,
Nový Udalosť ( ) { Event_Name = 'iné' ,Stav_udalosti = 'Plánované' ,Event_Budget = 1000 } ,
Nový Udalosť ( ) { Event_Name = 'politika' ,Stav_udalosti = 'Plánované' ,Event_Budget = 13 000 } ,
Nový Udalosť ( ) { Event_Name = 'financie' ,Stav_udalosti = 'Dokončené' ,Event_Budget = 20 000 } ,
} ;
//Event_Budget väčší ako 5000.
bol výsledok = diania . Kde ( inp1 => inp1 . Event_Budget > 5000 ) ;
pre každý ( bol i v výsledok ) {
Konzola . WriteLine ( 'NÁZOV: ' + i . Event_Name + ' POSTAVENIE: ' + i . Event_Status + ' ROZPOČET: ' + i . Event_Budget ) ;
}
}
}
verejnosti trieda Udalosť {
verejnosti reťazec Event_Name { dostať ; nastaviť ; }
verejnosti reťazec Event_Status { dostať ; nastaviť ; }
verejnosti int Event_Budget { dostať ; nastaviť ; }
}
Výkon:
V zozname „udalosti“ sú tri záznamy s Event_Budget väčším ako 5000.
Vysvetlenie:
1. Najprv vytvoríme triedu „Udalosť“ s tromi atribútmi.
2. Potom vytvoríme zoznam piatich udalostí.
3. Pomocou inp1 => inp1. Event_Budget > 5 000 lambda, vyberieme záznamy s Event_Budget väčším ako 5000.
Príklad 5:
Využite predchádzajúci kód a zmeňte výraz lambda. Vráťte udalosti s názvom Event_Name, ktorý končí na „Camp“ a so stavom Event_Status, ktorý je „Planned“.
//Lambda Expression - Event_Name končí na 'Camp' a Event_Status je 'Planned'.bol výsledok = diania . Kde ( inp1 => inp1 . Event_Name . Končís ( 'tábor' ) && inp1 . Event_Status == 'Plánované' ) ;
pre každý ( bol i v výsledok ) {
Konzola . WriteLine ( 'NÁZOV: ' + i . Event_Name + ' POSTAVENIE: ' + i . Event_Status + ' ROZPOČET: ' + i . Event_Budget ) ;
}
Výkon:
Existuje len jeden záznam, ktorý spĺňa obe podmienky.
Vysvetlenie:
Tu špecifikujeme dve podmienky vo výraze lambda. Operátor && (and) sa používa na to, aby sa dve podmienky stali pravdivými. Prvá podmienka používa metódu EndsWith() na kontrolu, či reťazec končí daným reťazcom. Druhá podmienka používa operátor „Porovnanie“ (==) na kontrolu, či sú obe hodnoty rovnaké alebo nie.
Záver
V C# výraz lambda berie výrazy/podmienené príkazy ako svoje telo bez mena. Musíme špecifikovať parametre. Potom sa k nemu priradia výrazy. V zásade sa používajú na filtrovanie záznamov z daného zdroja údajov, transformáciu prvkov a výber prvkov zo zdroja/sekvencie údajov. V tejto príručke sme diskutovali o piatich rôznych príkladoch, ktoré vyberajú, filtrujú a transformujú prvky pomocou výrazu lambda.