Lambda表达式一些可参考的小技巧和解答,
关于Lambda表达的Find、FindAll一个小解答和使用匿名函数、非匿名函数、labmda表达式的一些小实例
Find:搜索与指定谓词所定义的条件相匹配的元素,并返回整个 System.Collections.Generic.List<T> 中的第一个匹配元素
FindAll:检索与指定谓词定义的条件匹配的所有元素
static void TraditionalDelegateSyneax() { List<int> list = new List<int>(); list.AddRange(new int[] { 20, 1, 4, 8, 9, 44 }); //使用传统的委托调用findAll Predicate<int> callback = new Predicate<int>(IsEvenNumber); //不使用匿名函数 //List<int> evenNumbers = list.FindAll(callback); //使用匿名函数 //List<int> evenNumbers = list.FindAll(delegate(int i) { return (i % 2) == 0; }); //使用labmda表达式,labmda表达的参数即可以是显示类式,也可以是隐式类型化, //List<int> evenNumbers = list.FindAll(x => (x % 2) == 0); //使用多个语句处理参数 List<int> evenNumbers = list.FindAll((i) => { Console.WriteLine("value of is current:{0}",i); bool isEven = ((i % 2) == 0); return isEven; }); Console.WriteLine("Here are you even numbers"); foreach (var evenNumber in evenNumbers) { Console.WriteLine("{0}\t",evenNumber); } Console.ReadLine(); }
static bool IsEvenNumber(int i)
{
return (i % 2) == 0;
}