C#语言语法讲座-更新到C#3.0特性
C#3.0特性
l匿名类型,类,方法
如果只用一次,尽量使用匿名,避免冲突
var obj = new { name = ”zhangxx” , age = 30};
Console.WriteLine(obj.name);
l自动属性和类的快速初始化
public class EmployeeItem{
public string EmpID{get;set;}
public string EmpName{get;set;}
}
EmployeeItem ei = new EmployeeItem{EmpID=”002”,EmpName=”Hu”}; // C#3.0
l拓展方法
public static class Suibian{
public static String Talk(this String h){
return “hello string”;
}
}
调用方法
string testString = “”.Talk();
//结果为hello string
注:当拓展方法与原类方法同名时默认使用原类的方法。
l数据结构和算法
引入Linq来处理内存的数据
Linq2Object像SQL一样处理结合类数据(包含枚举类型的数据)
老的做法是:用SQL读取出来,要汇总也要先汇总。微软想用SQL那样成熟的方法来操作数据,用的是C#的语法。
Int[] arr1 = {12 , 3 , 6 , 4 , 90 , 96 , 56};
string testString = from a in arr1
where panduan(a)
order by descending
select a;
private bool panduan(int a){
//此处做判断
return a%3 == 0;
}
Linq拓展// Lambda表达式
string testString = arr1.Where(x=> x>10);
//结果为12,90,96,56
string testString = arr1.Where(x=> x>10).OrderByDescending(y=> y);
//结果为96,90, 56,12
//点号后面还有很多方法,可以去学习。
Int[] arr1 = {12 , 3 , 6 , 4 , 90 , 96 , 56};
Int[] arr2 = {-1 , -2 , 12 , 3 , 6 };
string testString = arr1.Except(arr2);
//结果为4,90,96,56