Qual a diferença de Linq e Lambda? Como diferenciar Linq de Lambda ? Qual melhor usar Linq ou Lambda ?
Qual a diferença de Linq e Lambda? Como diferenciar Linq de Lambda ? Qual melhor usar Linq ou Lambda ?
Olá, Wesley
São coisas diferentes. O LINQ é um tipo de tecnologia para consultas integradas à linguagem C#. Já as expressões lambdas são um tipo de sintaxe simplificada de expressões.
(parâmetros) => expressãoPor exemplo, no código abaixo:
using System;
using System.Linq;
public class Program
{
public static void Main()
{
int[] meuArray = {1,5,3,7,2,8,4,9};
var novoArray = meuArray
.OrderBy(i => i)
.Select(i => i * 100)
.ToArray();
foreach(var i in novoArray)
{
Console.WriteLine(i);
}
}
}Os métodos OrderBy e Select fazem parte do LINQ.
Mas veja como a assinatura do método OrderBy() é complexa:
public static IOrderedEnumerable<TSource> OrderBy<TSource, TKey>(
this IEnumerable<TSource> source,
Func<TSource, TKey> keySelector
)Por essa assinatura, teríamos que passar o argumento da expressão de ordenação como: Func<TSource, TKey> keySelector.
Em vez disso, dentro desses métodos, os argumentos foram passados como expressões lambda:
.OrderBy(i => i)
.Select(i => i * 100)Assim, as expressões ficam mais fáceis de serem escritas do que se usarmos Func<TSource, TKey>.
Então note que estamos usando ambos: LINQ e expressões lambda na mesma consuta.