Szintaxis:
- Lambda kifejezés: (paraméterek) => kifejezés
- Lambda nyilatkozat: { feltételes utasítás1 utasítás2 … }
1. példa:
Hozzon létre egy „műtrágya” listát, amely öt karakterláncot tartalmaz. Használja a lambda kifejezést, amely visszaadja az összes karakterláncot a listából.
segítségével Rendszer ;segítségével System.Linq ;
segítségével System.Collections.Generic ;
osztály LambdaExpressionExample {
statikus nyilvános üres Fő ( )
{
// Műtrágyák listájának létrehozása
Sorolja fel a műtrágyákat = új Lista ( ) ;
műtrágyák . Hozzáadás ( 'Karbamid' ) ;
műtrágyák . Hozzáadás ( 'nitrogén' ) ;
műtrágyák . Hozzáadás ( 'kálium' ) ;
műtrágyák . Hozzáadás ( 'Diammónium-foszfát' ) ;
műtrágyák . Hozzáadás ( 'foszfor' ) ;
// A LambdaExpression segítségével válassza ki az összes műtrágyát
volt eredmény = műtrágyák . Válassza ki ( inp1 => inp1 ) ;
az egyes ( volt én ban ben eredmény )
{
Konzol . WriteLine ( én ) ;
}
}
}
Kimenet:
Magyarázat:
1. Hozzon létre egy listát a „műtrágyák” nevű karakterlánctípusról. Adjon hozzá öt karakterláncot ehhez a listához.
2. Használja a lambda kifejezést az összes műtrágya kiválasztásához. Itt a kifejezés a „Select” operátorral használatos. A kifejezés az inp1 => inp1. Ezután a „foreach” ciklust használjuk a lambda kifejezés által visszaadott karakterláncok megjelenítésére.
2. példa:
Használja a lambda kifejezést a „foszfátot” tartalmazó műtrágyák kiválasztásához.
segítségével Rendszer ;segítségével System.Linq ;
segítségével System.Collections.Generic ;
osztály LambdaExpressionExample {
statikus nyilvános üres Fő ( )
{
// Műtrágyák listájának létrehozása
Sorolja fel a műtrágyákat = új Lista ( ) ;
műtrágyák . Hozzáadás ( 'Karbamid' ) ;
műtrágyák . Hozzáadás ( 'nitrogén' ) ;
műtrágyák . Hozzáadás ( 'orto - foszfát' ) ;
műtrágyák . Hozzáadás ( 'Diammónium-foszfát' ) ;
műtrágyák . Hozzáadás ( 'foszfor' ) ;
// A LambdaExpression segítségével válassza ki azokat a műtrágyákat, amelyek a következőket tartalmazzák: „Phosphate”
volt eredmény = műtrágyák . Ahol ( inp1 => inp1 . Tartalmaz ( 'Foszfát' ) ) ;
az egyes ( volt én ban ben eredmény )
{
Konzol . WriteLine ( én ) ;
}
}
}
Kimenet:
Két olyan karakterlánc van, amelyekben a „foszfát” szerepel.
Magyarázat:
1. Hozzon létre egy listát a „műtrágyák” nevű karakterlánctípusokról. Adjon hozzá öt karakterláncot ehhez a listához.
2. Itt a kifejezést a „Hol” operátorral használjuk. A kifejezés az inp1 => inp1.Contains(“foszfát”). Ezután a „foreach” ciklust használjuk a lambda kifejezés által visszaadott karakterláncok megjelenítésére.
3. példa:
Legyen egy lista (order_quantity), amely három rendelést tartalmaz. Adja meg a lambda-kifejezést, hogy minden rendeléshez 5-öt adjon.
segítségével Rendszer ;segítségével System.Linq ;
segítségével System.Collections.Generic ;
osztály LambdaExpressionExample {
statikus nyilvános üres Fő ( )
{
// Mennyiségi lista létrehozása
Sorolja fel a rendelési_mennyiséget = új Lista ( ) ;
Vásárlás Mennyiség . Hozzáadás ( 5 ) ;
Vásárlás Mennyiség . Hozzáadás ( 7 ) ;
Vásárlás Mennyiség . Hozzáadás ( 8 ) ;
// Használja a LambdaExpressiont 5-re minden rendelésnél.
volt eredmény = Vásárlás Mennyiség . Válassza ki ( inp1 => inp1 + 5 ) ;
az egyes ( volt én ban ben eredmény )
{
Konzol . WriteLine ( én ) ;
}
}
}
Kimenet:
Az [5,7,8] lista átalakul [10,12,13]-ra.
Magyarázat:
1. Készítse el az Integer típusú mennyiségek listáját.
2. Először kiválasztjuk a rendeléseket, majd minden rendeléshez hozzáadunk 5-öt. Tehát a „Select” operátor használatos. A kifejezés az inp1 => inp1 + 5.
4. példa:
Hozzon létre egy Esemény típusú listaadatforrást (három attribútummal – Esemény_neve, Esemény_Állapota és Esemény_költségkerete), és adja vissza a rekordokat 5000-nél nagyobb Event_Budget értékkel.
segítségével Rendszer ;segítségével System.Linq ;
segítségével System.Collections.Generic ;
// Hozzon létre egy osztályt 'Event_Source' néven 5 eseménnyel.
nyilvános osztály Esemény_forrás
{
nyilvános statikus üres Fő ( )
{
// Eseménylista
IList események = új Lista ( ) {
új Esemény ( ) { Esemény neve = 'Technikai tábor' ,Esemény_állapota = 'Tervezett' ,Esemény_költségvetés = 10000 } ,
új Esemény ( ) { Esemény neve = 'Marketing tábor' ,Esemény_állapota = 'Befejezve' ,Esemény_költségvetés = 5000 } ,
új Esemény ( ) { Esemény neve = 'Egyéb' ,Esemény_állapota = 'Tervezett' ,Esemény_költségvetés = 1000 } ,
új Esemény ( ) { Esemény neve = 'Politika' ,Esemény_állapota = 'Tervezett' ,Esemény_költségvetés = 13000 } ,
új Esemény ( ) { Esemény neve = 'Pénzügy' ,Esemény_állapota = 'Befejezve' ,Esemény_költségvetés = 20000 } ,
} ;
//Esemény_költségkeret nagyobb, mint 5000.
volt eredmény = eseményeket . Ahol ( inp1 => inp1 . Event_Budget > 5000 ) ;
az egyes ( volt én ban ben eredmény ) {
Konzol . WriteLine ( 'NAME: ' + én . Esemény neve + 'ÁLLAPOT: ' + én . Event_Status + ' KÖLTSÉGVETÉS: ' + én . Event_Budget ) ;
}
}
}
nyilvános osztály Esemény {
nyilvános húr Esemény neve { kap ; készlet ; }
nyilvános húr Event_Status { kap ; készlet ; }
nyilvános int Event_Budget { kap ; készlet ; }
}
Kimenet:
Három olyan rekord található az „események” listában, amelyeknek az Event_Budget értéke meghaladja az 5000-et.
Magyarázat:
1. Először létrehozunk egy „Esemény” osztályt három attribútummal.
2. Ezután létrehozunk egy listát öt eseményből.
3. A inp1 => inp1.Esemény_költségvetés > 5000 lambda kifejezés, kiválasztjuk azokat a rekordokat, amelyeknek az Event_Budget értéke nagyobb, mint 5000.
5. példa:
Használja az előző kódot, és változtassa meg a lambda kifejezést. Adja vissza az eseményeket a „Camp”-ra végződő Event_Name-vel és az Event_Status-val, amely „Tervezett”.
//Lambda kifejezés – Az esemény_neve „Camp”-ra végződik, az esemény állapota pedig „Tervezett”.volt eredmény = eseményeket . Ahol ( inp1 => inp1 . Esemény neve . Végződik ( 'Tábor' ) && inp1 . Event_Status == 'Tervezett' ) ;
az egyes ( volt én ban ben eredmény ) {
Konzol . WriteLine ( 'NAME: ' + én . Esemény neve + 'ÁLLAPOT: ' + én . Event_Status + ' KÖLTSÉGVETÉS: ' + én . Event_Budget ) ;
}
Kimenet:
Csak egy rekord van, amely mindkét feltételnek eleget tesz.
Magyarázat:
Itt két feltételt adunk meg a lambda kifejezésben. Az && (és) operátor a két feltétel igaz értékűvé tételére szolgál. Az első feltétel az EndsWith() metódust használja annak ellenőrzésére, hogy egy karakterlánc az adott karakterláncra végződik-e. A második feltétel az „Összehasonlítás” operátort (==) használja annak ellenőrzésére, hogy mindkét érték egyenlő-e vagy sem.
Következtetés
A C#-ban a lambda kifejezés a kifejezéseket/feltételes utasításokat név nélkül veszi testének. Meg kell adnunk a paramétereket. Ezután a kifejezések hozzá vannak rendelve. Alapvetően ezekkel lehet kiszűrni a rekordokat az adott adatforrásból, átalakítani az elemeket, és kiválasztani az elemeket az adatforrásból/sorozatból. Ebben az útmutatóban azt az öt különböző példát tárgyaltuk, amelyek a lambda-kifejezés használatával jelölik ki, szűrik és átalakítják az elemeket.