//Define lambda functions
Func<int, bool> isEven = i => i % 2 == 0;
Func<int, bool> isOdd = i => i % 2 == 1;
Func<int, bool> isLargerThan100 = i => i > 100;
//Define function which take an another function as a argument
bool isAny(List<int> list, Func<int,bool> f){
foreach(int i in list)
if (f(i))
return true;
return false;
}
//Define lists
List<int> list1 = new List<int>();
List<int> list2 = new List<int>();
list1.Add(1);
list1.Add(101);
list1.Add(1);
list1.Add(1);
list1.Add(1);
list2.Add(3);
list2.Add(5);
list2.Add(21);
list2.Add(7);
list2.Add(6);
//print
bool result;
result = isAny(list1, isEven);
Console.WriteLine(result);
result = isAny(list2, isEven);
Console.WriteLine(result);
Console.WriteLine();
result = isAny(list1, isLargerThan100);
Console.WriteLine(result);
result = isAny(list2, isLargerThan100);
Console.WriteLine(result);
False
True
True
False
More generic type
//Define lambda functions
Func<int, bool> isEven = i => i % 2 == 0;
Func<int, bool> isOdd = i => i % 2 == 1;
Func<int, bool> isLargerThan100 = i => i > 100;
//Define function which take an another function as a argument
bool isAny<T>(IEnumerable<T> list, Func<T,bool> f){
foreach(T i in list)
if (f(i))
return true;
return false;
}
//Define lists
List<int> list1 = new List<int>();
List<int> list2 = new List<int>();
list1.Add(1);
list1.Add(101);
list1.Add(1);
list1.Add(1);
list1.Add(1);
list2.Add(3);
list2.Add(5);
list2.Add(21);
list2.Add(7);
list2.Add(6);
//print
bool result;
result = isAny(list1, isEven);
Console.WriteLine(result);
result = isAny(list2, isEven);
Console.WriteLine(result);
Console.WriteLine();
result = isAny(list1, isLargerThan100);
Console.WriteLine(result);
result = isAny(list2, isLargerThan100);
Console.WriteLine(result);
//for strings
string[] str_arr1 = { "a", "bbb", "cccc" };
string[] str_arr2 = { "a", "bbb", "ccc" };
Console.WriteLine();
Console.WriteLine();
Console.WriteLine("for strings");
Console.WriteLine();
Console.WriteLine(isAny<string>(str_arr1, i => i.Length == 4));
Console.WriteLine(isAny<string>(str_arr2, i => i.Length == 4));
False
True
True
False
for strings
True
False


Leave a Reply