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