zoukankan      html  css  js  c++  java
  • Linq笔记

    Linq交流笔记 

    一、Linq是什么?

    Linq是语言级集成查询(Language INtegrated Query),是微软在.Net 3.5中提出的一项新技术, Linq主要包含4个组件——Linq to Objects、Linq to XML、Linq to DataSet 和Linq to SQL。其架构图如下:

     

     其中:

    (1)Linq to SQL :查询基于关系数据的数据,可以对数据库中的数据进行查询,修改,插入,删除,排序等操作;

    (2)Linq to Dataset:查询DasaSet对象中的数据,并对数据进行增删改查的操作;

    (3)Linq to Objects:处理对象和集合数据,可以查询IEnumberable 或IEnumberable<T>集合;

    (4)Linq to XML:可以差选和操作XML文件。

     

    重点关注Linq To Objects:LINQ to Objects的目标是为了操作对象集合,不管是什么操作,都可以看做是LINQ to Objects。只要引入System.Linq这个命名空间,就能够使用LINQ to Objects。 

     

    好处:Linq 使操作这些数据源更加简单,方便和易于理解。

    用一个例子来做说明:

     1 /// <summary>
     2         /// 初始化数组
     3         /// </summary>
     4         /// <param name="number">数组长度</param>
     5         /// <returns>整形数组</returns>
     6         private int[] InitData(int number)
     7         {
     8             int[] arrData = new int[number];
     9 
    10             for (int i = 0; i < number; i++)
    11             {
    12                 arrData[i] = i + 1;
    13             }
    14 
    15             return arrData;
    16         }
    17 
    18 /// <summary>
    19         /// 经常使用的方法:获取小于10的数据
    20         /// </summary>
    21         private void GetDataLessThanTenOld()
    22         {
    23             //获取数据源
    24             int[] arrData = InitData(100);
    25 
    26             //定义结果数组
    27             List<int> arrResult = new List<int>();
    28 
    29             //获取数据
    30             foreach(int i in arrData)
    31             {
    32                 if (i <= 10)
    33                 {
    34                     arrResult.Add(i);
    35                 }
    36             }
    37 
    38             foreach (int j in arrResult)
    39             {
    40                 Response.Write(j + "&nbsp;");
    41             }
    42         }
    43 
    44         /// <summary>
    45         /// 新的方法:获取小于10的数据
    46         /// </summary>
    47         private void GetDataLessThanTenNew()
    48         {
    49             //获取数据源
    50             int[] arrData = InitData(100);
    51 
    52             var arrResult = from i in arrData
    53                             where i <= 10
    54                             select i;
    55 
    56             foreach (int j in arrResult)
    57             {
    58                 Response.Write(j + "&nbsp;");
    59             }
    60 
    61         }
    View Code

    Linq基础用法

    实现过程:

             (1)from :获取数据源 

             (2)where :筛选

             (3)orderby .. ascending:排序

             (4)group .. by ..: 分组

             (5) join :连接

             (6)select :选择

             

    例子:

    //实现过程
            private void SelectData()
            {
                int[] arrData = InitRandomData(100);
    
                var data = from i in arrData        //获取数据源
                           where i < 50             //筛选
                           orderby i descending     //排序
                           select i;                //选择
    
                foreach (int j in data)
                {
                    Response.Write(j + "&nbsp;&nbsp;");
                }
            }

     

    常用方法:

    牛刀小试

     

     

  • 相关阅读:
    I NEED A OFFER!
    水题 Codeforces Round #303 (Div. 2) A. Toy Cars
    模拟 HDOJ 5099 Comparison of Android versions
    模拟 HDOJ 5095 Linearization of the kernel functions in SVM
    贪心 HDOJ 5090 Game with Pearls
    Kruskal HDOJ 1863 畅通工程
    Kruskal HDOJ 1233 还是畅通工程
    并查集 HDOJ 1232 畅通工程
    DFS/并查集 Codeforces Round #286 (Div. 2) B
    水题 Codeforces Round #286 (Div. 2) A Mr. Kitayuta's Gift
  • 原文地址:https://www.cnblogs.com/mjw1124/p/3583695.html
Copyright © 2011-2022 走看看