• 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; }
            }

        }
  • 相关阅读:
    SpringBoot之SpringApplication
    IP数据库
    Android长按及拖动事件探究
    5.7之sql_model
    Linux 信号介绍
    设计模式详解及PHP实现:代理模式
    为你的AliOS Things应用增加自定义cli命令
    DRDS SQL 审计与分析——全面洞察 SQL 之利器
    下一代大数据处理引擎,阿里云实时计算独享模式重磅发布
    2135亿背后的双11项目协作怎么玩?
  • 原文地址:https://www.cnblogs.com/qfb620/p/1116109.html
Copyright © 2020-2023  润新知