C#

Drop Down MenusCSS Drop Down MenuPure CSS Dropdown Menu

Friday, 4 July 2014

Use Of Yield and The Shortcut to the program


We Want to Display From The List which are greater than 3.

There are number of ways explained below. Then We have opted for optimized one.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace lambda
{
    class lambda
    {
        public delegate bool FilterInteger(int x);

        static public bool GreaterThanThree(int x)
        {
            return x > 3;
            
       
        }

        static public IEnumerable<int> FilterIntegersdelegate(List<int> source, FilterInteger predicate)
        {
            var result = new List<int>();
            foreach (var item in source)
            {
                if (predicate(item))
                {
                    result.Add(item);
                }
            }
            return result;
        }


        static public IEnumerable<int> FilterIntegers0(List<int> source, Func<int, bool> predicate)
        {
            var result = new List<int>();
            foreach (var item in source)
            {
                if (predicate(item))
                {
                    result.Add(item);
                }
            }
            return result;
        }


        static public IEnumerable<int> FilterIntegers(List<int> source, Func<int, bool> predicate)
        {
           // var result = new List<int>();
            foreach (var item in source)
            {
                if (predicate(item))
                {
                    yield return item;
                }
            }

           // return result;
        }

       

        static public IEnumerable<int> FilterIntegers1(List<int> source)
        {
             var result = new List<int>();
            foreach (var item in source)
            {
                if (item > 3)
                {
                    result.Add(item);
                }
            }

             return result;
        }

        static public List<int> FilterIntegers2(List<int> source)
        {
            var result = new List<int>();
            foreach (var item in source)
            {
                if (item > 3)
                {
                    result.Add(item);
                }
            }

            return result;
        }

        static void Main(string[] args)
        {
            List<int> Source = new List<int>() { 3, 2, 4, 45, 1, 5, 9 };

            var result1 = FilterIntegers(Source, i => i > 3);
            foreach (var item in result1)
                Console.WriteLine(item);

            Console.WriteLine("---------");

            var result2 = FilterIntegers1(Source);
            foreach (var item in result2)
                Console.WriteLine(item);

            Console.WriteLine("---------");

            var result3 = FilterIntegers2(Source);
            foreach (var item in result3)
                Console.WriteLine(item);
       

            Console.WriteLine("---------");
            var result0 = FilterIntegers0(Source, i => i > 3);
            foreach (var item in result0)
                Console.WriteLine(item);

            Console.WriteLine("---------");
            FilterInteger f1 = new FilterInteger(GreaterThanThree);
            var result6 = FilterIntegersdelegate(Source, i => i > 3);
            foreach (var item in result6)
                Console.WriteLine(item);
            Console.ReadLine();

        }
    }


}






















Optimized

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace lambda
{
    class lambda
    {
      
        static public IEnumerable<int> FilterIntegers(List<int> source, Func<int, bool> predicate)
        {
            foreach (var item in source)
            {
                if (predicate(item))
                {
                    yield return item;
                }
            }
        }

        static void Main(string[] args)
        {
            List<int> Source = new List<int>() { 3, 2, 4, 45, 1, 5, 9 };
            var result1 = FilterIntegers(Source, i => i > 3);
            foreach (var item in result1)
                Console.WriteLine(item);
            Console.WriteLine("---------");
            Console.ReadLine();

        }
    }

}

Hope you liked it :)

No comments:

Post a Comment