class ListQueryWithLambdaExpression { static void Main() { List<Product> products = Product.GetSampleProducts(); foreach (Product product in products.Where(p => p.Price > 10)) { Console.WriteLine(product); } } }
传递给where 的参数值来自一个变量
委托可以写个 匿名方法, 而lambda 更简单的匿名方法。 foreach 里面可以包含查询和 排序操作
编程方式的变化
c#1 条件和操作紧密耦合 两者都是硬编码
c#2 条件和操作分开,匿名和委托 变得更简单 有助于问题的可分离性
c#3 lambda 表达式 变得更 容易阅读 增强了可读性
输入:
public static List<Product> GetSampleProducts() { return new List<Product> { new Product { Name="West Side Story", Price = 9.99m }, new Product { Name="Assassins", Price=14.99m }, new Product { Name="Frogs", Price=13.99m }, new Product { Name="Sweeney Todd", Price=10.99m} }; }
输出:
Assassins: 14.99
Frogs: 13.99
Sweeney Todd: 10.99