If we have a range of number from 1 to 20 and we want to find odd among them using LINQ .
We have three options for that
1. Calling a Predicate
2. Anonymous Method
3. Lambda
So here we can see that we need to pass a predicate to evaluate the condition.
Calling a Predicate
Function we will pass as predicate is as below
We will pass this function as predicate to find odd numbers from the range of numbers.
Program.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication25 { class Program { static void Main(string[] args) { var result = from r in Enumerable.Range(1, 20).Where(GetOdd) select r; foreach (var r in result) Console.WriteLine(r); Console.ReadKey(true); } static bool GetOdd(int number) { if (number % 2 != 0) return true; else return false; } } }
Output
Using Anonymous Method
We can use anonymous method also
Anonymous method is taking an input parameter and returning a Boolean value.
Program.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication25 { class Program { static void Main(string[] args) { var result = from r in Enumerable.Range(1, 20).Where(delegate(int number) { if (number % 2 != 0) return true; return false; }) select r; foreach (var r in result) Console.WriteLine(r); Console.ReadKey(true); } } }
Output
Using Lambda
To make our query more readable in version 3.0 and onwards we can use Lambda instead of anonymous method also.
Lambda is very simple returning true when reminder is 0.
Program.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication25 { class Program { static void Main(string[] args) { var result = from r in Enumerable.Range(1, 20).Where(num =>num%2!=0) select r; foreach (var r in result) Console.WriteLine(r); Console.ReadKey(true); } } }
Output
Leave a Reply