using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LambadDemo
{
class Program
{
//enum 返回值 {
//Max,
//Min,
//}
返回一个最大值的方法
//static int Max(List<int>nums,返回值 retType) {
// int Max = nums[0];
// foreach (var num in nums)
// {
// switch (retType)
// {
// case 返回值.Max:
// if (num > Max)
// {
// Max = num;
// }
// break;
// case 返回值.Min:
// if (num < Max)
// {
// Max = num;
// }
// break;
// default:
// break;
// }
// }
// return Max;
//}
//遍历List,取出大于10的值 Traverse 遍历的意思
//static bool function(int num) {
// return num >= 10;
//}
//delegate 委托 代理
delegate bool Function(int num);
static Function GreaterThan10 = delegate(int num) { return num >= 10; };
static Function ISEven = delegate(int num) { return num % 2 == 0; };
static List<int> Traverse(List<int>nums,Function function){
var list = new List<int>();
foreach (var num in nums)
{
if (function(num))//num%2==0;num>=10
{
list.Add(num);
}
}
return list;
}
static void Main(string[] args)
{
//var list = Traverse(new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }, n => n % 2==0);
//foreach (var n in list)
//{
// Console.WriteLine("数组中的偶数{0}:",n);
//}
//Console.WriteLine("大于等于10的数值有{0}",list);
//Console.WriteLine("返回大于10的数值是:{0}",Traverse(new List<int>() {1,2,3,4,5,6,899,100 }));
//Console.WriteLine(Traverse(new List<int>() {100,200}));
var list = new List<int>() { -1,-2,-3,-4,-5,-6,- 7,8,9,10};
// list.Sum(n => { if (n <= 0) { return 0;}else{ return n;}});
// Console.WriteLine(list.Sum(n => { if (n <= 0) { return 0;}else{ return n;}}));
//list.ForEach(i => Console.WriteLine(i));
//foreach (var i in list)
//{
// Console.WriteLine(i);
//}
var list2=list.FindAll(n=>n<0);
foreach (var list3 in list2)
{
Console.WriteLine(list2);
}
Console.WriteLine("");
Console.ReadLine();
}
}
}