zoukankan      html  css  js  c++  java
  • 初探LINQ(LINQ to Object)

    linq是c#3.0语言中鑫增加的一个扩展呢,linq可以处理非常大的对象集合。linq除了提供一种简洁的查询语言,指定要搜索的对象以外,linq还提供了许多扩展方法,更便于排序,组合和计算查询结果的统计数据。

    1.linq的变体(linq to objects、linq to sql、linq to xml)

    linq to objects:为任意的c#内存对象提供查询,例如:数组、列表和其他集合类型。

    2.第一个linq查询

       eg: string[] names = {"alonso","zheng","smith","jones","smythe","mary"};

         查询var results=from n in names where n.StartsWith("m") select n;

         排序查询结果: var results=from n in names where n.StartsWith("m") orderby n select n;

         按姓名中的最后一个字母排序:var results=from n in names where n.StartsWith("m") orderby n.Substring(n.Length-1) select n;

         使用方法语法排序:var results=names.OrderBy(n => n).Where(n => n.StartsWith("s"));

         注:大多数使用方法语法的linq方法都要求传送一个方法或函数,来计算查询表达式。方法/函数参数以委托的形式传送,他一般引用一个匿名方法。

          n=>n<1000     运算符=>是~运算符  意思是:如果n小于1000该函数就返回一个true,否则返回false,函数是没有名称的匿名函数。

          查询复杂对象var results=from n in names where n.Region=="Asia" select n;  region是数据源的属性

                        var results=from n in names where n.Region=="Asia" select n.City;  region是数据源的属性  只显示符合条件的city那个列。注意:不可以显示多个 。

         单值选择查询:var results=from n in names where n.Region=="Asia" select n.distinct()

        any、all、多级排序(ThenBy)

    (1)用var关键字申明结果变量 (2)指定数据源:from子句 (3)指定条件:where子句 (4)指定元素:select子句 (5)排序:orderby(descending降序) 

    3.方法

       take(5)对应sql中的top表示前5位

       Skip(5)表示前5个结果以外的数据

       First()它返回结果集中第一个匹配给定条件的元素

      FirstOrDefault()返回的结果集中没有能匹配给定条件的,不会显示异常

    4.Join查询

       eg:var results=from n in names join o in orders on n.ID equals o.ID  select n; 

  • 相关阅读:
    Sicily 1795 Table tennis
    【转】关于使用printf和scanf对short进行输入输出的一段有趣对话
    Sicily 1561 PRIME
    【读书笔记】the TeXBook 1
    Sicily 1934 移动小球
    Sicily 1817 校歌手大奖赛
    个人总结flex各种用法(转)
    ActionScript3编译运行
    Flash & Flex组件优化的杀手锏callLater
    readResolve()方法与串行化
  • 原文地址:https://www.cnblogs.com/luyujie/p/2915648.html
Copyright © 2011-2022 走看看