1.2.1 数据的过滤
C# 1.0 测试循环和打印
ArrayList products = Product1.GetSampleProducts(); foreach (Product1 product in products) { if (product.Price > 10m) Console.WriteLine(product); }
C# 2.0 测试和打印分开进行
List<Product2> products = Product2.GetSampleProducts(); Predicate<Product2> test = delegate(Product2 p) { return p.Price > 10m; }; List<Product2> matches = products.FindAll(test); Action<Product2> print = Console.WriteLine; matches.ForEach(print);
C# 2.0 测试和打印分开进行的另一个版本
List<Product2> products = Product2.GetSampleProducts(); products.FindAll(delegate(Product2 p) { return p.Price > 10m; }).ForEach(Console.WriteLine);
C# 3.0 用Lambda表达式来测试
List<Product3> products = Product3.GetSampleProduct(); foreach (Product3 product in products.Where(p => p.Price > 10)) { Console.WriteLine(product); }