Výrazy lambda byly poprvé představeny v .NET 3.5, ve stejné době, kdy byl zpřístupněn jazyk LINQ (Language Integrated Query). Výrazy lambda jsou jako anonymní metody, ale s mnohem větší flexibilitou. Při použití výrazu lambda nemusíte zadávat typ vstupu. Výraz lambda tedy poskytuje kratší a čistší způsob reprezentace anonymních metod.
V tomto článku se podíváme na to, jak můžeme použít lambda výrazy v C #. Chcete-li pracovat s příklady kódu uvedenými v tomto článku, měli byste mít ve svém systému nainstalovanou Visual Studio 2019. Pokud ještě nemáte kopii, můžete si stáhnout Visual Studio 2019 zde.
Vytvořte projekt konzolové aplikace v sadě Visual Studio
Nejprve si vytvořme projekt konzolové aplikace .NET Core v sadě Visual Studio. Za předpokladu, že je ve vašem systému nainstalovaná sada Visual Studio 2019, postupujte podle níže uvedených kroků a vytvořte nový projekt konzolové aplikace .NET Core v sadě Visual Studio.
- Spusťte Visual Studio IDE.
- Klikněte na „Vytvořit nový projekt“.
- V okně „Vytvořit nový projekt“ vyberte ze zobrazeného seznamu šablon „Console App (.NET Core)“.
- Klikněte na Další.
- V dalším okně „Konfigurace nového projektu“ zadejte název a umístění nového projektu.
- Klikněte na Vytvořit.
Následující kroky by měly vyústit v nový projekt aplikace konzoly .NET Core v sadě Visual Studio 2019. Tento projekt použijeme pro práci s C # lambda výrazy v následujících částech tohoto článku.
Anatomie lambda výrazu
Výraz lambda je v zásadě metoda, která nemá deklaraci. Jinými slovy, výraz lambda je metoda, která nemá specifikátor přístupu ani název. Výraz lambda lze rozdělit na dvě části - levou část a pravou část. Levá část se používá pro vstup a pravá část pro psaní výrazů.
Zde je syntaxe pro použití výrazů lambda v C #.
(Vstupní parametry) => Výraz nebo blok výpisu
Můžete mít dva typy výrazů lambda, výraz lambda a výraz lambda. Výraz lambda se skládá ze vstupu na levé straně a výrazu na pravé straně, jak je znázorněno níže.
vstup => výraz;
Příkaz lambda se skládá ze vstupu na levé straně a sady příkazů na pravé straně, jak je znázorněno níže.
vstup => {prohlášení};
Příklady výrazů lambda v C #
Psaní výrazu lambda je jednoduché - stačí odstranit klíčové slovo delegáta a typ parametru z anonymní metody. Zvažte následující anonymní metodu, která používá klíčové slovo delegáta i typ parametru.
delegát (Autor a) {návrat a.IsActive && a.NoOfBooksAuthored> 10; }
Výše uvedený příkaz lze převést na výraz lambda, jak je ukázáno v níže uvedeném fragmentu kódu.
(a) => {a.IsActive && a.NoOfBooksAuthored> 10; }
Ve výše uvedeném prohlášení A
je parametr a =>
je operátor lambda. Následující příkaz je výraz.
a.IsActive && a.NoOfBooksAuthored> 10;
Zde je další příklad výrazu lambda, který zobrazuje lichá čísla mezi 1 a 9 v okně konzoly.
Celá čísla seznamu = nový Seznam {1, 2, 3, 4, 5, 6, 7, 8, 9};foreach (int num in integers.Where (n => n% 2 == 1) .ToList ())
{
Console.WriteLine (num);
}
Lambda výrazy s parametry a bez parametrů
Lambda výrazy mohou být bez parametrů nebo mají jeden nebo více parametrů. Následující fragment kódu ilustruje výraz lambda, který nemá žádné parametry.
() => Console.WriteLine ("Toto je výraz lambda bez jakéhokoli parametru");
Lambda výrazy mohou mít také jeden nebo více parametrů. Následující fragment kódu ukazuje, jak můžete předat jeden parametr výrazu lambda.
(a, numberOfBooksAuthored) => a.NoOfBooksAuthored> = numberOfBooksAuthored;
Můžete také zadat typ parametru ve výrazu lambda, jak je ukázáno ve fragmentu kódu uvedeném níže.
(a, int numberOfBooksAuthored) => a.NoOfBooksAuthored> = numberOfBooksAuthored;
Můžete dokonce zadat více příkazů ve výrazu lambda pomocí složených závorek. To se zobrazuje v následujícím fragmentu kódu.
(a, 10) =>{
Console.WriteLine („Toto je příklad výrazu lambda
s více výpisy ");
vrátit a.NoOfBooksAuthored> = 10;
}
Prohlášení lambdas v C #
Příkaz lambda používá syntaxi shodnou s výrazem lambdas. Rozdíl je v tom, že místo výrazu napravo od operátoru má příkaz lambda blok kódu, který obsahuje jeden nebo více příkazů.
Následující fragment kódu ukazuje, jak můžete využít příkaz lambda k zobrazení sudých čísel mezi 1 a 9 v okně konzoly.
int [] celá čísla = nová [] {1, 2, 3, 4, 5, 6, 7, 8, 9};foreach (int i v celých číslech. Kde (x =>
{
if (x% 2 == 0)
návrat true;
návrat false;
}
))
Console.WriteLine (i);
Výrazy lambda jsou skvělou funkcí v .NET a .NET Core, které poskytují kratší způsob reprezentace anonymních metod. Lambda výrazy mohou mít nulové parametry nebo jeden nebo více. Můžete dokonce přiřadit lambda výrazy delegátům Func, Action nebo Predicate. V budoucím článku zde prozkoumáme tyto a další funkce výrazů lambda. Prozkoumáme také, jak můžeme pracovat s výrazy lambda a LINQ i asynchronními lambdami.
Jak udělat více v C #:
- Kdy použít abstraktní třídu vs. rozhraní v C #
- Jak pracovat s AutoMapperem v C #
- Jak používat výrazy lambda v C #
- Jak pracovat s delegáty Action, Func a Predicate v C #
- Jak pracovat s delegáty v C #
- Jak implementovat jednoduchý záznamník v C #
- Jak pracovat s atributy v C #
- Jak pracovat s log4net v C #
- Jak implementovat vzor návrhu úložiště v C #
- Jak pracovat s odrazem v C #
- Jak pracovat se souborovým systémem v C #
- Jak provést línou inicializaci v C #
- Jak pracovat s MSMQ v C #
- Jak pracovat s metodami rozšíření v C #
- Jak na nás lambda výrazy v C #
- Kdy použít volatilní klíčové slovo v C #
- Jak používat klíčové slovo výnos v C #
- Jak implementovat polymorfismus v C #
- Jak vytvořit svůj vlastní plánovač úloh v C #
- Jak pracovat s RabbitMQ v C #
- Jak pracovat s n-ticí v C #
- Zkoumání virtuálních a abstraktních metod v C #