1
1.隐含类型局部变量2

3
var age = 26;4

5
var username = "zhuye";6

7

var userlist = new []
{"a","b","c"};8

9
foreach(var user in userlist)10

11
Console.WriteLine(user);12

13

14
纯粹给懒人用的var关键字,告诉编译器(对于CLR来说,它是不会知道你是否使用了var,苦力是编译器出的),你自己推断它的类型吧,我不管了。但是既然让编译器推断类型就必须声明的时候赋值,而且不能是null值。注意,这只能用于局部变量,用于字段是不可以的。15

16
2.匿名类型17

18

/**////匿名类19
///匿名类型允许开发人员定义行内类型,无须显式定义类型。常和var配合使用,var用于声明匿名类型。20
///定义一个临时的匿名类型在LINQ查询句法中非常常见,我们可以很方便的实现对象的转换和投影。21

22

23

var data = new
{ name = "yang", age = 12 };24

25
Console.WriteLine("name:{0} age:{1}",data.name,data.age);26

27

28
3.扩展方法29

30

/**//// <summary>31
/// 扩展方法,只能在静态类中定义并且是静态方法,如果扩展方法名和原有方法名发生冲突,那么扩展方法将失效。32
/// </summary>33

static class AddMeth
{34
public static string Stringadd(this String s)35

{36
return s + "11";37
}38
}39

40

/**////调用扩展方法41
Console.WriteLine("11".Stringadd());42

43
4.集合初始化器44

45

class Person
{46

public string username
{ get; set; }47

public int age
{ get; set; }48
public override string ToString()49

{50
return String.Format("username:{0} age:{1}", this.username, this.age);51
}52
}53

54
//集合初始化器55

56

var persons = new List<Person>
{57

new Person
{username="yang",age=21},58

new Person
{username="y",age=25}59
};60

61

62

foreach (Person p in persons)
{63
Console.WriteLine(p.ToString());64
}65

66

67
5.Lambda表达式68

69
//Lambda表达式70

71

var List = new[]
{ "aa","bb","ac"};72

73
var result = Array.FindAll(List, s => s.IndexOf("a") > -1);74

75

foreach (var v in result)
{76
Console.WriteLine(v);77
}78
//Lambda表达式 查询语句79
var selectperson = from p in persons where p.age > 20 select p.username.ToUpper() ;//返回的是String类型集合80
81
82
var selectpersons = persons.Where(p => p.age > 20); //返回的是Person对象集合83
84

foreach (Person p in selectpersons)
{85
Console.WriteLine(p.age);86
}87

88

foreach (String p in selectperson)
{89
Console.WriteLine("通过查询语句"+p);90
}91


浙公网安备 33010602011771号