zoukankan      html  css  js  c++  java
  • C#之LINQ与XML

    LINQ

    1. LINQ is a bridge over  object-oriented languages and relational database.

    2. 注意查询格式与SQL的不同:

        Customer是一个类,customers是一个list容器,里面的数据是Customer型的。

          IEnumerable<Customer> result =  from customer in customers       where customer.FirstName == "Donna“     select customer;

       from后面是该查询语句的内部变量,where后面接条件,select接内部变量,result是查询结果

       同时需注意result代表的不是当前数据库或数据的查询结果,而是代表这个查询过程,也就是说result后的结果在数据修改前后可能是不同的。

    3. 当需要保存查询结果时,可以用 ToList () or the ToArray() 来保存当前查询的结果

       IEnumerable<Customer> result =  from customer in customers       where customer.FirstName == "Donna“     select customer;

       List<Customer> cachedResult = result.ToList<Customer>();

    4. 对数据集合的操作:join(取交集), grouping(分组), aggregation(合并), and sorting.

        [data source 1] join [data source 2] on [join condition]

        例如: from customer in customers        join address in addresses           on customer.Name equals address.Name   就是对客户名字与家庭地址相同的数据取交集

         var result = from address in addresses

         group address by address.Name;

         注意分组之后的结果相当于一个二维数组

        而对于排序:from customer in Customers        orderby customer.LastName        select customer 默认为升序

        tips:对于select的变量如果未定义其类型,则可以用var交给编译器去推断。

    5. Extension Methods可以简化查询语句,但是有很多限制

        Lambda Expressions in LINQ : IEnumerable<Customer> result = customers.Where( customer =>  customer.FirstName == "Donna“ ) ; 

    XML

    1. eXtensible Markup Language 的格式

    2. 将数据库变为XML文档

    该文档是Customers,里面的元素是Customer,每个Customer都有FirstName, LastName, EmailAdress。

    3. XML的序列化与反序列化

        XmlSerializer serializer = new XmlSerializer(typeof(Customer));

    序列化之后的结果。数据需要序列化以后传输。

    而反序列化是将一个接收到的XML转换为本地可处理的文本。

  • 相关阅读:
    A1023 Have Fun with Numbers (20分)(大整数四则运算)
    A1096 Consecutive Factors (20分)(质数分解)
    A1078 Hashing (25分)(哈希表、平方探测法)
    A1015 Reversible Primes (20分)(素数判断,进制转换)
    A1081 Rational Sum (20分)
    A1088 Rational Arithmetic (20分)
    A1049 Counting Ones (30分)
    A1008 Elevator (20分)
    A1059 Prime Factors (25分)
    A1155 Heap Paths (30分)
  • 原文地址:https://www.cnblogs.com/GameChina/p/4456055.html
Copyright © 2011-2022 走看看