C# LINQ Lambda výrazy

C Linq Lambda Vyrazy



Lambda výraz v C# priamo berie výrazy/podmienené príkazy ako svoje telo bez mena. Musíme špecifikovať parametre a potom sa k nemu priradia výrazy. Pri práci s Language Integrated Query (LINQ) môžete mať požiadavku, že budete musieť transformovať údaje, ktoré sa nachádzajú v zdroji údajov, alebo konvertovať jeden zdroj údajov na iný zdroj údajov. V tejto príručke uvidíme, ako filtrovať záznamy zo zdroja údajov zadaním výrazu lambda a výberom záznamov zo zdroja údajov.

Syntax:

  1. Lambda výraz: (parametre) => výraz
  2. 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.