Linq中的TakeWhile和SkipWhile的用法

发布时间:2020-08-07 06:44:01 作者:studyofnet
来源:网络 阅读:1635

Linq中的SkipWhile


1、含义


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

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

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

 

2、实例

 

            int[] grades = { 59, 82, 70, 56, 92, 98, 85 };
            IEnumerable<int> 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<string> 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

推荐阅读:
  1. sed的基本用法和高级用法
  2. LinQ中Skip()方法和Take()方法的使用

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

linq take

上一篇:无线充电VS有线充电,到底哪个才是最正确的选择方式,望周知

下一篇:使用ORACLE调用https接口实现Json报文和Json对象解析

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》