2010-06-18 11 views

Respuesta

16

Se lo conoce como lambda operator in the MSDN docs.

Todas las expresiones lambda utilizan el operador lambda =>, que se lee como "va a ". El lado izquierdo del operador lambda especifica los parámetros de entrada (si corresponde) y el lado derecho contiene la expresión o el bloque de declaración . La expresión lambda x => x * x se lee "x va a x veces x". Este expresión se puede asignar a un tipo delegado de la siguiente manera:

2

Si usted está hablando en el contexto de LINQ que es un lamdba operator.

Tales como ...

var selectedValues = myList.Where(v=>v.Name="Matt"); 

Usted puede utilizar éstos en sus propios métodos en lugar del delgates. Los usos posibles incluirían algo como esto ...

void DoWork<T>(T input, Func<T, bool> doAction, Action<T> action) 
{ 
    if (doAction(input)) 
     action(input); 
} 

... el uso del método anterior se vería así ...

DoWork(5, i=>i>1, v=>Console.WriteLine(v)); 

... porque 5 es mayor que 1, esto mostraría 5 en la consola.

+0

Los operadores Lambda no solo se utilizan con LINQ. – Femaref

+0

Creo que mi ejemplo muestra que ... dije en el contexto de que podría haber visto algo loco en un ejemplo como 'for (; i => 1;)' y puede no darse cuenta de que es una expresión normal. Lo más divertido es que en LINQ también puede hacer '.Seleccione (i =>" Nuevo valor ")' para crear un conjunto enumerable de "Nuevo valor" la longitud del conjunto de entrada. –

+1

Para que quede claro, '=>' no es "la expresión lambda" - es * parte * de ella. –

Cuestiones relacionadas