一开始用LINQ做了测试,看了Lambda后又重新写了一次,同时将其它一些新特性加了进去,就不单独测试了。三个测试类已在LINQ学习中给出,这里就不写了
1: using System;
2: using System.Collections.Generic;
3: using System.Linq;
4: using System.Text;
5:
6: namespace LinqTest
7: {
8: class Program
9: {
10: static void Main(string[] args)
11: {
12: //实现CatFamily的LIST泛型
13:
14: var _cat = new Cats();
15: var _tiger = new Tigers();
16: var lstCats =new List<CatFamily>(){ _cat, _tiger };
17:
18: Console.WriteLine("Lambda Test");
19: //通过Lambda查询出相应的子类
20:
21: lstCats.FindAll(getTiger => getTiger.GetType() == typeof(Tigers)).First().Miao();
22: lstCats.FindAll(getCat => getCat.GetType() == typeof(Cats)).First().Miao();
23: }
24: }
25: }
同样未做是否为空的判断,总觉得14至16行还可以再做修改,但能力有限就先这样写吧,等学习深入后再改。
以上代码全部在vs2008下做的测试