使用LINQ取代集合中的比较器和迭代器

在157前面出现实现迭代器的操作接口,但是扩展性太低,如果存在新的排序要求,必须实现新的比较器。

对代码的侵入性太高,为类型继承了接口,增加了新的方法。

List<Salary> companySalary = new List<Salary>()
            {
                new Salary(){Name = "Mike",BaseSalary=5600,Bonus = 1222 },
                new Salary(){Name = "Lucye",BaseSalary=7000,Bonus = 6222 },
                new Salary(){Name = "Minke",BaseSalary=4800,Bonus = 8902 },
                new Salary(){Name = "Juninme",BaseSalary=4000,Bonus = 5112 },
                new Salary(){Name = "Yingxing",BaseSalary=9000,Bonus = 2332 },
                new Salary(){Name = "Plenybn",BaseSalary=4270,Bonus = 1562 },
            };
            Console.WriteLine("默认排序:");
            foreach (Salary item in companySalary)
            {
                Console.WriteLine(item.ToString());
            }
            Console.WriteLine();

            Console.WriteLine("LINQ:BaseSalary的排序: ");
            var BaseSalaryLinq = from salary in companySalary orderby salary.BaseSalary select salary;
            foreach (var a in BaseSalaryLinq)
            {
                Console.WriteLine(a.ToString());
            }
            Console.WriteLine();

            Console.WriteLine("LINQ:Bonus的排序:");
            var BonusSalary = from salary in companySalary orderby salary.Bonus select salary;
            foreach (var a in BonusSalary)
            {
                Console.WriteLine(a.ToString());
            }
            Console.WriteLine("Hello World!");

其实就是:LINQ更加适合集合的查询,排序等操作。而且方便。

posted @ 2022-12-19 11:38  Wen_Chen  阅读(40)  评论(0)    收藏  举报