深入理解 c# 第一章 用lambda表达式作为测试

时间:2021-11-29 19:07:02
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