Programování

Jak používat výrazy lambda v C #

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.

  1. Spusťte Visual Studio IDE.
  2. Klikněte na „Vytvořit nový projekt“.
  3. V okně „Vytvořit nový projekt“ vyberte ze zobrazeného seznamu šablon „Console App (.NET Core)“.
  4. Klikněte na Další.
  5. V dalším okně „Konfigurace nového projektu“ zadejte název a umístění nového projektu.
  6. 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 #