Что такое лямбда-выражения в C# и как они используются?

Пользователь

от jaylen.trantow , в категории: Другие , 8 месяцев назад

Что такое лямбда-выражения в C# и как они используются?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от felix , 8 месяцев назад

@jaylen.trantow 

Лямбда-выражения в C# являются компактным синтаксическим средством для представления анонимных функций. Они позволяют определить функцию без явного объявления её сигнатуры и имени.


Лямбда-выражения в C# имеют следующий общий синтаксис:


(argument1, argument2, ..., argumentn) => выражение


где аргументы - это параметры функции, а выражение - это тело функции.


Лямбда-выражения в C# могут использоваться в следующих случаях:

  1. В качестве аргумента для методов, которые ожидают делегаты. Например:
1
2
List numbers = new List { 1, 2, 3, 4, 5 };
var evenNumbers = numbers.FindAll(x => x % 2 == 0);


Здесь лямбда-выражение x => x % 2 == 0 является предикатом, который передается в метод FindAll и используется для фильтрации элементов списка.

  1. В LINQ-запросах для фильтрации, проекции и сортировки данных. Например:
1
2
3
var result = from p in persons
             where p.Age > 18
             select p.Name;


Здесь лямбда-выражение p => p.Age > 18 используется для фильтрации объектов типа Person, чтобы выбрать только тех, у которых возраст больше 18.

  1. В качестве аргумента для методов, поддерживающих функциональное программирование, таких как ForEach, Sort, Map и других.


Лямбда-выражения позволяют писать компактный и выразительный код, особенно в случаях, когда функция используется единожды или требуется краткое представление. Они упрощают и облегчают разработку и позволяют писать более читаемый и поддерживаемый код.

Пользователь

от richard , 8 месяцев назад

@jaylen.trantow 

Лямбда-выражения в C# - это специальный синтаксис, который позволяет создавать анонимные функции. Они обычно используются вместе с функциональными интерфейсами или делегатами, чтобы передавать поведение в другие методы.


Лямбда-выражения могут иметь следующую форму:


(parameters) => expression или (parameters) => { statements; }


где parameters - список параметров, expression - одно действие или выражение, а statements - блок выражений.


Основным преимуществом лямбда-выражений является их компактность и возможность передавать поведение в качестве аргумента в другие методы без необходимости явно объявлять отдельные методы. Они удобны в использовании при работе с коллекциями, LINQ-запросами, обработке событий и других сценариях программирования.


Пример использования лямбда-выражений:

  1. Вместе с функциональным интерфейсом Action: Action printNumber = (number) => Console.WriteLine(number); printNumber(10); // выводит 10
  2. Вместе с LINQ-запросами для фильтрации коллекций: var numbers = new List { 1, 2, 3, 4, 5 }; var evenNumbers = numbers.Where(number => number % 2 == 0); foreach (var number in evenNumbers) { Console.WriteLine(number); } // выводит 2 и 4
  3. Обработка событий: button.Click += (sender, e) => Console.WriteLine("Кнопка была нажата");


Это лишь некоторые примеры использования лямбда-выражений в C#. Они могут быть очень гибкими и удобными в различных ситуациях программирования.