Syntax:
- Lambda výraz: (parametry) => výraz
- Lambda prohlášení: { podmíněný příkaz1 příkaz2 … }
Příklad 1:
Vytvořte seznam „hnojiv“, který obsahuje pět řetězců. Použijte výraz lambda, který vrátí všechny řetězce ze seznamu.
použitím Systém ;použitím System.Linq ;
použitím System.Collections.Generic ;
třída Příklad výrazu lambda {
statický veřejnost prázdnota Hlavní ( )
{
// Vytvořit seznam hnojiv
Vyjmenujte hnojiva = Nový Seznam ( ) ;
hnojiva . Přidat ( 'Močovina' ) ;
hnojiva . Přidat ( 'dusík' ) ;
hnojiva . Přidat ( 'draslík' ) ;
hnojiva . Přidat ( 'Di-amoniumfosfát' ) ;
hnojiva . Přidat ( 'fosfor' ) ;
// Použijte LambdaExpression k výběru všech hnojiv
byl výsledek = hnojiva . Vybrat ( inp1 => inp1 ) ;
pro každého ( byl i v výsledek )
{
Řídicí panel . WriteLine ( i ) ;
}
}
}
Výstup:
Vysvětlení:
1. Vytvořte seznam typů řetězců s názvem „hnojiva“. Přidejte do tohoto seznamu pět řetězců.
2. Pomocí výrazu lambda vyberte všechna hnojiva. Zde se výraz používá s operátorem „Select“. Výraz je inp1 => inp1. Poté použijeme smyčku „foreach“ k zobrazení řetězců, které vrací výraz lambda.
Příklad 2:
Pomocí výrazu lambda vyberte hnojiva, která obsahují „fosfát“.
použitím Systém ;použitím System.Linq ;
použitím System.Collections.Generic ;
třída Příklad výrazu lambda {
statický veřejnost prázdnota Hlavní ( )
{
// Vytvořit seznam hnojiv
Vyjmenujte hnojiva = Nový Seznam ( ) ;
hnojiva . Přidat ( 'Močovina' ) ;
hnojiva . Přidat ( 'dusík' ) ;
hnojiva . Přidat ( 'orto-fosfát' ) ;
hnojiva . Přidat ( 'Di-amoniumfosfát' ) ;
hnojiva . Přidat ( 'fosfor' ) ;
// Pomocí LambdaExpression vyberte hnojiva, která zahrnují - 'Phosphate'
byl výsledek = hnojiva . Kde ( inp1 => inp1 . Obsahuje ( 'Fosfát' ) ) ;
pro každého ( byl i v výsledek )
{
Řídicí panel . WriteLine ( i ) ;
}
}
}
Výstup:
Existují dva řetězce, které obsahují „Phosphate“.
Vysvětlení:
1. Vytvořte seznam typů řetězců s názvem „hnojiva“. Přidejte do tohoto seznamu pět řetězců.
2. Zde se výraz používá s operátorem „Kde“. Výraz je inp1 => inp1.Contains(“Phosphate”). Poté použijeme smyčku „foreach“ k zobrazení řetězců, které vrací výraz lambda.
Příklad 3:
Mějme seznam (množství_objednávek), který obsahuje tři objednávky. Zadejte výraz lambda pro přidání 5 ke každé objednávce.
použitím Systém ;použitím System.Linq ;
použitím System.Collections.Generic ;
třída Příklad výrazu lambda {
statický veřejnost prázdnota Hlavní ( )
{
// Vytvořit seznam množství
Vypsat objednané_množství = Nový Seznam ( ) ;
objednané_množství . Přidat ( 5 ) ;
objednané_množství . Přidat ( 7 ) ;
objednané_množství . Přidat ( 8 ) ;
// Použijte LambdaExpression na 5 pro každou objednávku.
byl výsledek = objednané_množství . Vybrat ( inp1 => inp1 + 5 ) ;
pro každého ( byl i v výsledek )
{
Řídicí panel . WriteLine ( i ) ;
}
}
}
Výstup:
Seznam [5,7,8] se transformuje na [10,12,13].
Vysvětlení:
1. Vytvořte seznam veličin typu Integer.
2. Nejprve vybereme objednávky a poté přidáme 5 ke každé objednávce. Použije se tedy operátor „Select“. Výraz je inp1 => inp1 + 5.
Příklad 4:
Vytvořte zdroj dat seznamu typu Event (se třemi atributy – Event_Name, Event_Status a Event_Budget) a vraťte záznamy s Event_Budget, který je větší než 5000.
použitím Systém ;použitím System.Linq ;
použitím System.Collections.Generic ;
// Vytvořte třídu s názvem - 'Event_Source' s 5 událostmi.
veřejnost třída Event_Source
{
veřejnost statický prázdnota Hlavní ( )
{
// Seznam událostí
IList události = Nový Seznam ( ) {
Nový událost ( ) { Název události = 'Technický tábor' ,Stav_události = 'Plánované' ,Událost_Rozpočet = 10 000 } ,
Nový událost ( ) { Název události = 'Marketingový kemp' ,Stav_události = 'Dokončeno' ,Událost_Rozpočet = 5000 } ,
Nový událost ( ) { Název události = 'Jiný' ,Stav_události = 'Plánované' ,Událost_Rozpočet = 1000 } ,
Nový událost ( ) { Název události = 'Politika' ,Stav_události = 'Plánované' ,Událost_Rozpočet = 13 000 } ,
Nový událost ( ) { Název události = 'Finance' ,Stav_události = 'Dokončeno' ,Událost_Rozpočet = 20 000 } ,
} ;
//Event_Budget větší než 5000.
byl výsledek = Události . Kde ( inp1 => inp1 . Event_Budget > 5000 ) ;
pro každého ( byl i v výsledek ) {
Řídicí panel . WriteLine ( 'NÁZEV: ' + i . Název události + 'STAV:' + i . Event_Status + 'ROZPOČET:' + i . Event_Budget ) ;
}
}
}
veřejnost třída událost {
veřejnost tětiva Název události { dostat ; soubor ; }
veřejnost tětiva Event_Status { dostat ; soubor ; }
veřejnost int Event_Budget { dostat ; soubor ; }
}
Výstup:
V seznamu „událostí“ jsou tři záznamy s Event_Budget větším než 5000.
Vysvětlení:
1. Nejprve vytvoříme třídu „Event“ se třemi atributy.
2. Poté vytvoříme seznam pěti událostí.
3. Pomocí inp1 => inp1.Event_Budget > 5000 lambda, vybereme záznamy s Event_Budget větším než 5000.
Příklad 5:
Využijte předchozí kód a změňte výraz lambda. Vraťte události s názvem Event_Name, který končí na „Camp“ a se stavem Event_Status, který je „Planned“.
//Lambda Expression - Event_Name končí na 'Camp' a Event_Status je 'Planned'.byl výsledek = Události . Kde ( inp1 => inp1 . Název události . Končí s ( 'Tábor' ) && inp1 . Event_Status == 'Plánované' ) ;
pro každého ( byl i v výsledek ) {
Řídicí panel . WriteLine ( 'NÁZEV: ' + i . Název události + 'STAV:' + i . Event_Status + 'ROZPOČET:' + i . Event_Budget ) ;
}
Výstup:
Existuje pouze jeden záznam, který splňuje obě podmínky.
Vysvětlení:
Zde specifikujeme dvě podmínky ve výrazu lambda. Operátor && (and) se používá k tomu, aby byly dvě podmínky pravdivé. První podmínka používá metodu EndsWith() ke kontrole, zda řetězec končí daným řetězcem. Druhá podmínka používá operátor „Porovnání“ (==) ke kontrole, zda jsou obě hodnoty stejné nebo ne.
Závěr
V C# výraz lambda přebírá výrazy/podmíněné příkazy jako své tělo bez názvu. Musíme specifikovat parametry. Poté jsou k němu přiřazeny výrazy. V zásadě se používají k filtrování záznamů z daného zdroje dat, transformaci prvků a výběru prvků ze zdroje/sekvence dat. V této příručce jsme diskutovali o pěti různých příkladech, které vybírají, filtrují a transformují prvky pomocí výrazu lambda.