Вылейте свои сообщения. Начну с парочки, посмотрим, сколько мы сможем собрать.
Чтобы предоставить встроенные обработчики событий, такие как
button.Click += (sender,args) =>
{
};
Чтобы найти предметы в коллекции
var dogs= animals.Where(animal => animal.Type == "dog");
Для итерации коллекции, например
animals.ForEach(animal=>Console.WriteLine(animal.Name));
Пусть приходят !!
Jalf, я сам просмотрел код и написал, и обнаружил, что использую лямбды различными интересными способами - по сравнению с «если» и «пока», лямбда является гораздо более мощной функцией. Следовательно, я подумал, что этот пост поможет мне и другим узнать больше об использовании.





Возврат настраиваемого объекта:
var dude = mySource.Select(x => new {Name = x.name, Surname = x.surname});
Вы знали, что можете просто сделать новое {x.name, x.surname}? Свойства будут в нижнем регистре, как в этом примере.
Создание аккумулятора.
static Func<int, int> Foo(int n)
{
return a => n += a;
}
Обратите внимание на использование замыкания здесь. он создает аккумулятор, который «запоминает» значение n между вызовами - без переменной класса или экземпляра.
Чтобы выразить безымянную функцию.
@DaveZych - ладно, может, я сделаю это через четыре года.
Можете удалить ответ ... Я тоже попал сюда инструментами ...
@DaveZych. К сожалению, это действительно ответ на вопрос. вот почему я пометил вопрос для удаления ...
Однострочная функция
Func<int, int> multiply = x => x * 2;
int y = multiply(4);
Вот немного другой - вы можете использовать их (как это) для имитации отсутствующих операторов «infoof» / «nameof» в C#, т.е. чтобы вместо жесткого кодирования имени свойства в виде строки вы могли использовать лямбда. Это означает, что он проверяется во время компиляции (какие строки не могут быть).
Очевидно, что это связано с затратами на производительность, поэтому "просто для удовольствия", но интересно ...
Для агрегированных операций с Linq:
public Double GetLengthOfElements(string[] wordArr) {
double count = wordArr.Sum(word => word.Length);
return count;
}
Конечно, лучше использовать foreach
С вызывающим методом для обновления пользовательского интерфейса из события многопоточного компонента
void Task_Progress(object sender,TaskProgressArgs e)
{
BeginInvoke(new MethodInvoker(() => UpdateProgress(e)));
}
Неужели ТАК уже не хватает бессмысленных "вопросов"? Как насчет того, чтобы спросить, как люди используют утверждения «если»? Или классы? int, может быть? Лямбды - это просто удобная новая функция языка, наравне со всеми другими функциями языка. Нужны ли нам эти напыщенные вопросы все время?