Daniel
2
Q:

c# lambda expression

//Lambdas are just short handed anonymous method or functions usally 
//for use in passing to other methods or functions to call such as a sort.
//Example:
//The Lambda used here after the =s
Action ExampleContainerForDelagate = ()=>
	{/*Do something such as this example*/
    	Console.WriteLine("Hello world");
	};
//has been shorted from this anonymous delegate or method.
Action ExampleContainerForDelagate = delegate () { Console.WriteLine("Hello world"); };
//And this full (named) method signature method passing
Action ExampleContainerForDelagate = ExampleMethod;
void ExampleMethod()
{ Console.WriteLine("Hello world"); }
//usage example
List<int> ExampleList = new List(){1,3,0};
ExampleList.Sort((x,y)=>{return x - y; });
//The Sort will sort based on the return values from the Lambda passed.
//a negative will be seen as a smaller than the next number
//a 0 will be seen as equal
//and a positive will be seen as bigger than the next number
//by switching x and y postion in the 'return x - y;' you will effectively 
//change the sort to descending order. This is there for useful for sorting 
//based on needs or where it is not obvious how to sort.
1
int[] numbers = {1, 3, 5, 6, 7, 8};
//----------------------------------------------------------//
//Original expression
public static bool IsEven(int num)
{
  return num % 2 == 0;
}

bool hasEvenNumber = Array.Exists(numbers, 
                                  IsEven);
//----------------------------------------------------------//
//Lambda expression
bool hasEvenNumber = Array.Exists(numbers, 
                                  (int num) => num % 2 == 0 );

//Some code can be removed: 
// - The modulo operator (%) is only used with numbers*/
bool hasEvenNumber = Array.Exists(numbers, 
                                  (num) => num % 2 == 0 );

// - just one parameter, we don’t need the parentheses
bool hasEvenNumbers = Array.Exists(numbers, 
                                   num => num % 2 == 0 );
//----------------------------------------------------------//
0

New to Communities?

Join the community