1 class Program
2 {
3 static void Main(string[] args)
4 {
5 string[] names = { "Burke", "Connor", "Frank", "Everett", "Albert", "George", "Harris", "David" };
6
7 //Where扩展方法,要求的是委托实例
8 //01传一个命名方法
9 var fiveNameA = names.Where(IsLengthFive);
10 //02匿名方法
11 var fiveNameB = names.Where(
12 delegate(string s) { return s.Length == 5; }
13 );
14
15 //03 静态类中静态方法的调用
16 IEnumerable<string> fiveNameC = Enumerable.Where(names, delegate(string s) { return s.Length == 5; });
17
18 foreach (var item in fiveNameC)
19 {
20 Console.WriteLine(item.ToString());
21 }
22 //04对03的结果排序
23 var fiveNameOrdered = fiveNameC.OrderBy(
24 delegate(string s) { return s; }
25 );
26 foreach (var item in fiveNameOrdered)
27 {
28 Console.WriteLine(item.ToString());
29 }
30 /**/
31 Console.WriteLine("************************");
32 //为扩展方法传递匿名方法(匿名委托实例)
33 IEnumerable<string> myQuery =
34 //names.Where(IsLengthFive)
35 names
36 .Where(delegate(string s) { return s.Length == 5; })
37 .OrderBy(delegate(string s) { return s; })
38 .Select(delegate(string s) { return "你好:" + s.ToLower(); });
39
40 foreach (string item in myQuery)
41 {
42 Console.WriteLine(item);
43 }
44
45
46
47
48 }
49
50 private static bool IsLengthFive(string s)
51 {
52 //if (s.Length == 5)
53 //{
54 // return true;
55 //}
56 //else
57 //{
58 // return false;
59 //}
60 return s.Length == 5;
61 }
62
63 }