lambda 是由net framework 1.0 委托
net framework 2.0 匿名方法 过度过来的。
//framework 1.0函数指针
//deleTransfer trans = new deleTransfer(ToPascal);//委托指向方法ToPascal
//Console.WriteLine(trans("asdd"));
//framwrok 2.0 匿名函数
//deleTransfer trans = delegate(string s) { return s.Substring(0, 1).ToUpper() + s.Substring(1).ToLower(); };
//Console.WriteLine(trans("qweee"));
//net framework 3.5匿名方法
deleTransfer trans = (s) => (s.Substring(0, 1).ToUpper() + s.Substring(1).ToLower());
Console.WriteLine(trans("adfee"));
//参数列表中参数类型可以是明确的类型 ,或者推断类型
//如果是推断类型,则参数的数据类型将有编译器上下文来推断。
lambda表达式:
最基本的lambda表达式:
(参数列表)=>(方法体)
//linq to object 泛型集合
List
person.Add("zhang san");//集合添加数据
person.Add("li si");//集合添加数据
person.Add("wang wu");//集合添加数据
person.Add("zhao liu");//集合添加数据
//输出person中所有元素
var result=person.Select(p => p);
result.Print();
//为IEnumerable提供输出方法
public static void Print(this IEnumerable
{
//获取可遍历的接口
IEnumerator result = ie.GetEnumerator();
Console.WriteLine("\n-----------------\n");
while (result.MoveNext())
{
Console.WriteLine(result.Current);
}
Console.WriteLine("\n-----------------\n");
}
IEnumerable、IEnumerator的区别:
IEnumerable只包含一个方法GetEnumeraTor(),他返回一个循环访问集合的IEnumberator对象。
IEnumberator是一个真正的集合访问器,没有他,就不能使用foreach语句遍历集合和数组。
MoveNext方法是将游标的内部位置向前移动,要进行循环遍历,不向前移动怎么能行。
第二种方法
order by