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

Влейте в свои посты. Начну с пары, посмотрим, сколько мы сможем собрать.

Предоставить встроенные обработчики событий, такие как

button.Click += (sender,args) =>
{
};

Чтобы найти предметы в коллекции

 var dogs= animals.Where(animal => animal.Type == "dog");

Для итерации коллекции, как

 animals.ForEach(animal=>Console.WriteLine(animal.Name));

Пусть они придут !!

13.12.2008 13:43:30
Разве у ТАК уже нет достаточно бессмысленных «вопросов»? Как насчет того, чтобы спросить, как люди используют утверждения «если»? Или занятия? может быть, int? Лямбды - это просто удобная новая функция в языке, наравне с любой другой функцией языка. Нужны ли нам эти повторяющиеся вопросы постоянно?
jalf 13.12.2008 17:55:27
Джальф, я сам просмотрел код и написал, и обнаружил, что я использую Lambdas различными интересными способами - по сравнению с Ifs и whiles, Lambda - гораздо более мощная функция. Следовательно, я думал, что этот пост поможет мне и другим узнать больше об использовании.
amazedsaint 15.12.2008 06:30:21
7 ОТВЕТОВ
РЕШЕНИЕ

Возврат пользовательского объекта:

var dude = mySource.Select(x => new {Name = x.name, Surname = x.surname});
3
13.12.2008 13:55:55
Знаете ли вы, вы можете просто сделать новый {x.name, x.surname}? Свойства будут строчными, как в этом примере.
leppie 13.12.2008 14:34:49

Создание аккумулятора.

    static Func<int, int> Foo(int n)
    {
        return a => n += a;
    }

Обратите внимание на использование закрытия здесь. он создает аккумулятор, который «запоминает» значение n между вызовами - без переменной класса или экземпляра.

0
13.12.2008 14:27:14

Выразить безымянную функцию.

-1
13.12.2008 17:16:09
@DaveZych - хорошо, возможно я сделаю это, четыре года спустя.
Daniel Earwicker 13.11.2012 09:07:16
Вы можете удалить ответ ... Я попал сюда и с помощью инструментов ...
gdoron is supporting Monica 13.11.2012 09:33:00
@DaveZych. К сожалению, это действительно отвечает на вопрос. вот почему я пометил вопрос для удаления ...
gdoron is supporting Monica 13.11.2012 09:42:22

Функция одной строки

Func<int, int> multiply = x => x * 2;
int y = multiply(4);
2
13.12.2008 20:20:45

Вот немного другой - вы можете использовать их (как это) для имитации отсутствующих операторов "infoof" / "nameof" в C # - то есть, чтобы вместо жесткого кодирования имени свойства в виде строки, вы могли использовать лямбду , Это означает, что он проверяется во время компиляции (что не может быть строкой).

Очевидно, что это связано с затратами на производительность, поэтому "просто для удовольствия", но интересно ...

2
13.12.2008 23:12:26

Для агрегатных операций с Linq:

public Double GetLengthOfElements(string[] wordArr) {

   double count = wordArr.Sum(word => word.Length);
   return count;
}

Конечно бьет с помощью foreach

0
14.12.2008 12:46:22

С методом invoker для обновления пользовательского интерфейса из многопоточного события компонентной сети

void Task_Progress(object sender,TaskProgressArgs  e)
{
    BeginInvoke(new MethodInvoker(() => UpdateProgress(e)));
}
1
20.06.2009 10:23:30