延迟操作符:凡是IEnumerable<T>或IOrderedEnumerable<T>类型的值的操作符都属于延迟操作符。

1.限定操作符

Where

作用:用于将筛选出来的元素放到一个序列中

原型

    public static IEnumerable<T> Where<T>(
        this IEnumerable<T> source,
        Func<T,bool> predicate);

 

    public static IEnumerable<T> Where<T>(
        this IEnumerable<T> source,
        Func<T,int,bool> predicate);

 

例子

    static void Main(string[] args)
    {
        string[] items = { "csharp", "vb", "java", "cpp", "python","php","c++" };

        var result = items.Where<string>(c => c.StartsWith("c"));
        //显示查询结果
         foreach (var item in result)
        {
            Console.WriteLine(item);
        }

        Console.Read();
    }

结果

linq_jieguo1 

       

    static void Main(string[] args)
    {
        string[] items = { "csharp", "vb", "java", "cpp", "python","php","c++" };

        var result = items.Where<string>((c,i) => (i & 1) == 1);
        //显示查询结果
         foreach (var item in result)
        {
            Console.WriteLine(item);
        }

        Console.Read();
    }

 

结果

linq_jieguo2