zoukankan      html  css  js  c++  java
  • LinQ Coding (4)[Concat应用]

    Concat有两种应用:
    1.Enumerable.Concat<(Of <(TSource>)>) 泛型方法应用
    此方法是延迟执行的。此方法只返回输入序列中的所有原始元素
    应用场景:只有通过直接调用对象的 GetEnumerator 方法来枚举该对象时,才执行此方法表示的查询。
    IEnumerable<String> queryWithEnumerable = students.Select(student => student.City).Concat(teachers.Select(teacher => teacher.City));

                Console.WriteLine(
    "Enumerable.Concat<(Of <(TSource>)>) 泛型方法应用");

                
    foreach (string city in queryWithEnumerable)
                    Console.WriteLine(city);

    2.QueryableConcat<(Of <(TSource>)>) 泛型方法应用
    此方法生成 MethodCallExpression,其实方法本身即作为了构造的泛型方法。
    然后,将 MethodCallExpression 传递给 IQueryProvider 的 CreateQuery方法,由 source1 参数的 Provider 属性表示。其实说白了,就是将 source2 中的元素连接到 source1 中的元素以组合成一个新的序列。
     IEnumerable<String> queryWithQueryable = students.AsQueryable().Select(student => student.City).Concat(teachers.Select(teacher => teacher.City));

                Console.WriteLine(
    "QueryableConcat<(Of <(TSource>)>) 泛型方法应用");

                
    foreach (string city in queryWithEnumerable)
                    Console.WriteLine(city);


    以下是一个完整的DEMO

    public class ChangeDataUsingLinq : Interface
        
    {
            
    Interface Members

            
    class Student
            
    {
                
    public string First getset; }
                
    public string Last getset; }
                
    public int ID getset; }
                
    public string Street getset; }
                
    public string City getset; }
                
    public List<int> Scores;
            }


            
    class Teacher
            
    {
                
    public string First getset; }
                
    public string Last getset; }
                
    public int ID getset; }
                
    public string City getset; }
            }

        }
  • 相关阅读:
    【算法学习笔记】27.动态规划 解题报告 SJTU OJ 1254 传手绢
    【算法学习笔记】26.扫描维护法 解题报告 SJTU OJ 1133 数星星
    【算法学习笔记】25.贪心法 均分纸牌问题的分析
    【算法学习笔记】24.记忆化搜索 解题报告 SJTU OJ 1002 二哥种花生
    【算法学习笔记】23.动态规划 解题报告 SJTU OJ 1280 整装待发
    【算法学习笔记】22.算法设计初步 二分查找 上下界判断
    【算法学习笔记】21.算法设计初步 求第k个数 划分法 快排法
    【算法学习笔记】20.算法设计初步 归并排序 求逆序数
    【算法学习笔记】19.算法设计初步 最大子列和问题的几种方法
    【算法学习笔记】18.暴力求解法06 隐式图搜索2 八数码问题 未启发
  • 原文地址:https://www.cnblogs.com/qfb620/p/1116109.html
Copyright © 2011-2022 走看看