欢迎来到.net学习网

欢迎联系站长一起更新本网站!QQ:879621940

您当前所在位置:首页 » Linq to OBJECT延时标准查询操作符集合 » 正文

TakeWhile操作符

创建时间:2014年06月19日 10:28  阅读次数:(3757)
分享到:
TakeWhile操作符用于从输入序列中返回满足一定条件的元素。

需要特别注意的是,如果TakeWhile遇到一个不满足条件的元素,就会跳出检查,不再检查剩下的元素

TakeWhile操作符有两个方法原型,第一个方法原型定义如下。
public static IEnumerable<T > TakeWhile<T >(
this IEnumerable<T > source,
Func<T, bool > predicate);

TakeWhile操作符被调用时,会将source序列中的每一个元素作为参数顺序传入委托predicate中执行一遍,执行结果为true将会被添加到结果集中,结果为false,则立即跳出循环

示例如下:
static void Main(string[] args)
{
    List<string > list = new List<string >()
    {
        "you","say","hellow","world","how","are","you"
    };

    var query = list.TakeWhile(p = > p.Length == 3);
    foreach (var item in query)
    {
        Console.WriteLine(item);
    }

    Console.ReadLine();
}

运行效果如下:


第二个原型方法如下:
public static IEnumerable<TSource > SkipWhile<TSource >(
this IEnumerable<TSource > source, 
Func<TSource, int, bool > predicate);

对比第一个原型方法的定义,第二个原型方法的委托参数多了一个int参数,这个参数表示下标,还是如下示例:
class Program
{
static void Main(string[] args)
{
    List<string > list = new List<string >()
    {
    "you","say","hellow","world","how","are","you"
    };

    var query = list.TakeWhile((p, i) = > i <1 && p.Length == 3);
    foreach (var item in query)
    {
        Console.WriteLine(item);
    }

    Console.ReadLine();
}
}
}

运行效果如下:
2
来源:.net学习网
说明:所有来源为 .net学习网的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
【编辑:Wyf】

打赏

取消

感谢您的支持,我会做的更好!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

最新评论

共有评论0条
  • 暂无任何评论,请留下您对本文章的看法,共同参入讨论!
发表评论:
留言人:
内  容:
请输入问题 19+31=? 的结果(结果是:50)
结  果: