Linq中的TakeWhile和SkipWhile的用法

Linq中的SkipWhile

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名注册、网页空间、营销软件、网站建设、北戴河网站维护、网站推广。


1、含义

(1)、对数据源进行枚举,从第一个枚举得到的元素开始,调用客户端的predicate

(2)、如果返回true,则跳过该元素,继续进行枚举操作.

(3)、但是,如果一旦predicate返回为false,则该元素以后的所有元素,都不会再调用predicate,而全部枚举给客户端.

 

2、实例

 

            int[] grades = { 59, 82, 70, 56, 92, 98, 85 };
            IEnumerable lowerGrades =
                grades
                .OrderByDescending(grade => grade)
                .SkipWhile(grade => grade >= 80);
            Console.WriteLine("All grades below 80:");
            foreach (int grade in lowerGrades)
            {
                Console.WriteLine(grade);
            }
            /**//*
             This code produces the following output:
             All grades below 80:
             70
             59
             56
            */

二、Linq中的TakeWhile


1、含义

(1)、对数据源进行枚举,从第一个枚举得到的元素开始,调用客户端传入的predicate( c.Name == ""woodyN")

(2)、如果这个predicate委托返回true的话,则将该元素作为Current元素返回给客户端,并且,继续进行相同的枚举,判断操作.

(3)、但是,一旦predicate返回false的话,MoveNext()方法将会返回false,枚举就此打住,忽略剩下的所有元素.

 

2、实例

 

            string[] fruits = { "apple", "banana", "mango", "orange", 
                                  "passionfruit", "grape" };
            IEnumerable query =
                fruits.TakeWhile(fruit => String.Compare("orange", fruit, true) != 0);
            foreach (string fruit in query)
            {
                Console.WriteLine(fruit);
            }
            /**//*
             This code produces the following output:
             apple
             banana
             mango
            */

参考资料:Linq中的TakeWhile和SkipWhile   http://www.studyofnet.com/news/872.html


本文标题:Linq中的TakeWhile和SkipWhile的用法
分享网址:http://ybzwz.com/article/ggdidj.html