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

Мы можем использовать опцию dimnames в matrix, поскольку OP использовал matrix для создания данных.

data.frame(matrix(1:4, 2, 2, dimnames=list(NULL, c("a", "b"))))

Или

`colnames<-`(data.frame(matrix(1:4, 2, 2)), c('a', 'b'))
24
задан Diego Rafael Souza 9 May 2018 в 13:45
поделиться

3 ответа

: лямбда-выражения, полезные для чего-либо кроме запросов

, выражения Lamba не ничего особенного кроме удобного способа записать 'встроенную' функцию.

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

примером non-query-related использования lamba могло бы быть немного кода, который делает что-то асинхронно, что Вы запускаете с ThreadPool. QueueUserWorkItem. Важный момент - то, что Вы могли также записать этот использующие анонимные делегаты (которые были введением C#2), или просто простая отдельная функция членства класса.

Этот http://blogs.msdn.com/jomo_fisher/archive/2005/09/13/464884.aspx является превосходным пошаговым введением в весь этот материал, который мог бы помочь Вам.

12
ответ дан Will Dean 29 November 2019 в 00:15
поделиться

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

Вот изобретенный пример:

List<int> myInts = GetAll();
IEnumerable<int> evenNumbers = myInts.Where(x => x % 2 == 0);

Теперь, когда Вы foreach через evenNumbers lamda

x=> x % 2 == 0

тогда применяетесь как фильтр к myInts.

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

7
ответ дан Brian Leahy 29 November 2019 в 00:15
поделиться

Вот простой пример чего-то прохладного, которое можно сделать с лямбдами:

List<int> myList = new List<int>{ 1, 2, 3, 4, 5, 6, 7, 8, 9 };
myList.RemoveAll(x => x > 5);
//myList now == {1,2,3,4,5}

метод RemoveAll берет предикат (делегат, который берет argurments и возвращает bool), любой, который соответствует ему, удалены. Используя лямбда-выражение делает его более простым, чем фактическое объявление предиката.

5
ответ дан Corey 29 November 2019 в 00:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: