很长一段时间没学习了,现在重新从运维工作转回到研发上来,发现自己还是在吃老本,不学习不行啊。
记下来备查。
原文:LINQ体验系列文章导航 http://www.cnblogs.com/lyj/archive/2008/03/25/1119671.html
一、C# 3.0 特性
1、自动属性
支持:public string Name {get;set;}
这样定义的属性Name是null;
2、隐含类型局部变量名
引入了关键字 var,仅限于局部变量,变量类型编译器编译时自己判断;
初始化语句必须为表达式;
比如:var str = "hi" ;
3、匿名类型
比如:var p= new {id=1,name="abcd"}
等同于新建类类型为object,示例为 p的类;
新建数组:
var intArray = new[] { 2, 3, 5, 6 };
var strArray = new[] { "Hello", "World" };
3、对象与集合初始化器
直接使用{}来初始化
比如:User user = new User { Id = 1, Name = "YJingLee", Age = 22 };
4、扩张方法
public static class TestThis
{
public static void Test(this Program a,string abc)
{
Console.WriteLine(a.GetType().ToString()+abc);
}
public static void Test(this int i)
{
Console.WriteLine(i);
}
}
这样Program 的实例就有了方法Test(string abc)可以用了
整形就有了Test方法可以使用;
注意必须是静态类的静态类型
5、Lambda表达式和Lambda表达式树
Lambda表达式格式:(参数列表)=>表达式或语句块
具体意义:定义Lambda接受参数列表,运行表达式或语句块返回表达式或语句块的值传给这个参数列表。
var inString = list.FindAll(s => s.Indexof("YJingLee") >= 0);