zoukankan      html  css  js  c++  java
  • Linq Coding Part Four[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; }
            }

        }

    LINQ Coding 目录

    1. Linq Coding -- Part One
    2. Linq Coding -- Part Two[标准查询运算符]
    3. Linq Coding -- Part Three [Let子句]
    4. Linq Coding -- Part Four[Concat应用]
    5. Linq Coding -- Part Five (Join之内部联接查询)
    6. Linq Coding -- Part Six (Join之分组联接)
    7. Linq Coding -- Part Seven (Join之左外部联接、DefaultIfEmpty、GroupJoin)
  • 相关阅读:
    rsync命令详解
    Android Studio手动下载配置Gradle的方法
    "standard,singleTop,singleTask,singleInstance"-Android启动模式
    "Activity" 总结
    Android应用开发完全退出程序的通用方法
    SVN服务器使用(一)
    使用PyInstaller打包Python程序
    py2exe把python程序转换exe
    python 下载安装setuptools及pip应用
    Python的库和资源(转)
  • 原文地址:https://www.cnblogs.com/RuiLei/p/1084573.html
Copyright © 2011-2022 走看看