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

        }
  • 相关阅读:
    Kafka sender消息生产者
    springboot--websocket简单demo(一):session chat
    IDE引入mindmap插件,在项目中添加思维导图
    Redis启动命令
    Failure to find com.oracle:ojdbc6:jar:11.2.0.1.0
    Java秒杀系统实战系列~构建SpringBoot多模块项目
    利用java多线程技术往Elasticsearch导入千亿级数据
    list遍历陷阱分析原理
    Storm框架最显著的应用
    Apache Storm Trident
  • 原文地址:https://www.cnblogs.com/qfb620/p/1116109.html
Copyright © 2020-2023  润新知