Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Linq vs Lambada

Qual a diferença de Linq e Lambda? Como diferenciar Linq de Lambda ? Qual melhor usar Linq ou Lambda ?

1 resposta
solução!

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ão

Por 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.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software