为拓展方法传递委托

 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     }

猜你喜欢

转载自www.cnblogs.com/myBlogOu/p/9939583.html
今日推荐