zoukankan      html  css  js  c++  java
  • Basic Query Operations(第二章 基本的查询操作)

    本章介绍linq查询的基本操作和典型的各种操作方法。更多的方法还有参考

    LINQ Query Expressions (C# Programming Guide)

    Standard Query Operators Overview

    一:Generating(产生还是开始?)

    在linq查询中第一步要指出要被查询的数据源,因为在c#中一个变量在使用前必须先被声明。这就是为什么from从句在最前面。

    IEnumerable<Customer> customerQuery =
        from cust in customers
        //...
    from从句被成为发生器(generator),对数据源不需要显示声明。

     二:joining(链接)

    在linq中join从用来和对象集合一起使用不仅是数据表。在linq中不得不经常使用join就像你做数据库操作时候的外键联系一样。

    三:Filtering(过滤,筛选)

    在通常的查询操作都使用bool类型的表达来得到正确和或需要的数据。linq中通过where来完成

    IEnumerable<Customer> queryLondonCustomers =
        from cust in customers
        where cust.City == "London"
    四:Ordering(排序)

    通过orderby可以很方便的返回经过排序的数据。例如下面。其中name是字符串类型

    IEnumerable<Customer> queryLondonCustomers = 
        from cust in customers
        where cust.City == "London"
        orderby cust.Name ascending
        …
    五:Grouping
    通过Group从句可以根据你指定的关键字来对你的结果分组。比如你的顾客要根据城市来分组,可以使用cust.City关键字
    IEnumerable<IGrouping<string, Customer>> queryCustomersByCity = 
        from cust in customers
        group cust by cust.City;
    
        foreach(IGrouping<string, Customer> group in custQuery)
        {
            Console.WriteLine(group.Key);
            foreach(Customer customer in group)
            {
                Console.WriteLine("    {0}", customer.Name);
            }
        }
    六:select
    select就是返回结果
    select obj
    也可以在select后面进行各种运算。比如
    IEnumerable<String> queryNamesInLondon = 
        from cust in customers
        where cust.City == "London"
        orderby cust.Name ascending
        select cust.Name;
    custom是个大的表对象。如果只返回custom的名称列的话就是一个IEnumerable<String>
    更复杂一点的
    struct NamePhone
    {
        Public string Name;
        Public string Phone;
    }
    IEnumerable<NamePhone> queryLondonNamesPhones = 
        from cust in customers
        where cust.City == "London"
        orderby cust.Name ascending
        select new NamePhone {Name = cust.Name, Phone = cust.Phone};

    本文使用Blog_Backup未注册版本导出,请到soft.pt42.com注册。

  • 相关阅读:
    2013软考最新大纲
    安卓的第二堂课
    安卓第一堂课
    VS2010的快捷键;VS2012变化的快捷键
    漂亮的表格样式大全
    ASCII说明和ASCII对照表
    Cookie学习笔记
    JavaScript实现功能全集
    1073-成绩排名
    1071-数字的空洞
  • 原文地址:https://www.cnblogs.com/zjypp/p/2319482.html
Copyright © 2011-2022 走看看