zoukankan      html  css  js  c++  java
  • Linq学习笔记延迟操作符(投影操作符)

    2.投影操作符

    Select

    作用:从某种类型的元素组成的输入序列创建一个由其他类型的元素组成的输出序列。

    输入的类型和输出的类型不必相同。

    原型

        public static IEnumerable<S> Select<T, S>(
            this IEnumerable<T> source,
            Func<T, S> selector);
        public static IEnumerable<S> Select<T, S>(
            this IEnumerable<T> source,
            Func<T, int, S> selector);

    例子

        static void Main(string[] args)
        {
            string[] items = { "csharp", "vb", "java", "cpp", "python","php","c++" };
    
            var result = items.Select<string, int>(c => c.Length);
            //显示查询结果
             foreach (var item in result)
            {
                Console.WriteLine(item);
            }
    
            Console.Read();
        }

    结果

    linq_jieguo3

        static void Main(string[] args)
        {
            string[] items = { "csharp", "vb", "java", "cpp", "python","php","c++" };
    
            var result = items.Select<string,string>((c, i) => "" + (i + 1) + ":" + c);
            //显示查询结果
             foreach (var item in result)
            {
                Console.WriteLine(item);
            }
    
            Console.Read();
        }

    结果

    linq_jieguo4

    SelectMany

    作用:操作符可以基于输入序列创建一个一到多的输出投影序列。Select操作符可以为

    每个输入元素返回一个输出元素,而SelectMany可以为每个输入元素返回空或多个输出

    元素。

    原型

        public static IEnumerable<S> SelectMany<T, S>(
            this IEnumerable<T> source, 
            Func<T, IEnumerable<S>> selector);
        public static IEnumerable<S> SelectMany<T, S>(
            this IEnumerable<T> source, 
            Func<T, int, IEnumerable<S>> selector);

    例子

        static void Main(string[] args)
        {
            string[] items = { "Hello World", "Welcome to MVC", "Linq to Sql"};
    
            var result = items.SelectMany(c => c.Split(' '));
            //显示查询结果
             foreach (var item in result)
            {
                Console.WriteLine(item);
            }
    
            Console.Read();
        }

    结果

    linq_jieguo5

        static void Main(string[] args)
        {
            string[] items = { "Hello World", "Welcome to MVC", "Linq to Sql"};
    
            var result = items.SelectMany((c, i) => c.Split(' ').Select(p => new { id = i + 1,msg = p});
            //显示查询结果
             foreach (var item in result)
            {
                Console.WriteLine(item.id + ":" + item.msg);
            }
    
            Console.Read();
        }

    结果

    linq_jieguo6

  • 相关阅读:
    考研级《计算机网络》知识梳理——第五期
    考研级《计算机网络》知识梳理——第三期
    考研级《计算机网络》知识梳理——第九期
    考研级《计算机网络》知识梳理——第八期
    考研级《计算机网络》知识梳理——第四期
    考研级《计算机网络》知识梳理——第十期
    如果你起走得更远!
    vim列编辑模式!
    CSS深入之label与input对齐!
    js中array的sort()方法!
  • 原文地址:https://www.cnblogs.com/yangxi1081/p/2487622.html
Copyright © 2011-2022 走看看