欢迎来到.net学习网

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

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

Where操作符

创建时间:2014年06月16日 16:03  阅读次数:(1380)
分享到:
Where操作符用于限定输入集合中的元素,将符合条件的元素组织生成一个序列结果。

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

Where操作符会将集合中的每个元素都传入到委托参数中执行一次委托参数方法,如果满足条件,就会将当前元素添加到新的序列中,并最终返回这个新的序列。

第一个方法的委托参数只接受一个T类型的参数,bool是返回值,即表示集合中的每个元素调用委托参数方法时,如果返回值为true,就会将当前元素添加的新的序列中。

示例如下:
static void Main(string[] args)
{
    List<int > list = new List<int >();
    list.Add(1);
    list.Add(2);
    list.Add(3);
    list.Add(4);
    list.Add(5);
    list.Add(6);
    list.Add(7);
    list.Add(8);
    list.Add(9);
    list.Add(10);

    var query = list.Where(x = > x  > 5); //输出值大于5的元素

    //query的结果应该是 6,7,8,9,10
    foreach (var i in query)
    {
        Console.WriteLine(i.ToString());
    }

    Console.ReadLine();
}

输出结果如下:



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

相比于第一个方法,第二个方法的委托参数多出一个int参数,该参数表示当前集合元素的下标,从0开始,示例如下:
static void Main(string[] args)
{
    List<int > list = new List<int >();
    list.Add(0);
    list.Add(1);
    list.Add(2);
    list.Add(3);
    list.Add(4);
    list.Add(5);
    list.Add(6);
    list.Add(7);
    list.Add(8);
    list.Add(9);
    list.Add(10);

    var query = list.Where((x, p) = > x  > 5 && p  > 8); //输出值大于5且下标大于8的元素

    //query的结果应该是9,10
    foreach (var i in query)
    {
        Console.WriteLine(i.ToString());
    }

    Console.ReadLine();
}

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

打赏

取消

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

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

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

最新评论

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