LINQ uses lambdas , but lambdas can be used without LINQ as well. Example:
//declara uma função que retorna um bool, para ver se um int tem todos os mesmos números
public static bool TodosIguais( this int num, Func<T,bool> igual ) {
return igual(num);
}
//usa essa função, mas posso mandar qualquer função que retorna um bool
int numero = 55;
//Usando um lambda mais complexo:
bool todosIguais = numero.TodosIguais( i => {
char comparar = num.ToString()[0];
foreach( var n in num.ToString() ) {
if ( comparar != n ) { return false; }
}
return true;
} );
//Usando um lambda um pouco mais simples
todosIguais = numero.TodosIguais(
i => i.ToString().All(c=>c.Equals(i.ToString().First())) );
//Usando um lambda super simples, mas que possa retornar algo errado
todosIguais = numero.TodosIguais( i => i == i );
In other words, lambda is a succinct command to declare a function, being the function parameters before =>
, and the function content after.