Finding Odd numbers using LINQ in C#


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 
1.gif

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 

2.gif 

We will pass this function as predicate to find odd numbers from the range of numbers. 
 
3.gif

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

4.gif

Using Anonymous Method

We can use anonymous method also 

5.gif 

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 

4.gif 

Using Lambda 

To make our query more readable in version 3.0 and onwards we can use Lambda instead of anonymous method also.

7.gif 

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 

4.gif
 

erver'>
Up Next
    Ebook Download
    View all
    Learn
    View all