zoukankan      html  css  js  c++  java
  • LINQ学习笔记(6) 查询变量和查询表达式结构

      今天是2012年的第二天,今天要总结的内容是LINQ中查询变量和查询表达式的结构。

    查询变量:

    首先来看一段代码:

     1 class Program
    2 {
    3 static void Main(string[] args)
    4 {
    5 int[] numbers = { 2,5,28,31,17,16,42};
    6
    7 var numsQuery = from n in numbers //返回枚举数
    8 where n < 20

    9 select n;
    10
    11 int numsCount = (from n in numbers//返回一个整数
    12 where n < 20

    13 select n).Count();
    14
    15 foreach (var x in numsQuery)
    16 {
    17 Console.Write("{0},",x);
    18 }
    19 Console.WriteLine();
    20
    21 Console.WriteLine("{0}",numsCount);
    22
    23 Console.ReadKey();
    24 }
    25 }
    26 /*
    27 程序输出结果为:2,5,17,16
    28 4
    29 */

    从以上代码中我们可以得到如下信息:

    1,LINQ查询可以返回两种类型的结果:

      1> 一个是枚举,它列出了满足查询参数的项列表。

      2> 一个是叫做标量(scalar)的单一值。它是满足查询条件的结果的某种摘要形式。

      例如第一个语句返回的是一个IEnumerable对象,它可以被用来枚举查询的结果。第二个语句执行查询并调用一个方法(Count)来返回从查询返回的项的总数。

    2,等号左边的变量就叫查询变量。如上例中的变量numsQuery和numsCount。

    理解了查询变量后下面我们来看一下查询表达式的结构。

     

    查询表达式的结构:

    最基本的查询表达式的结构总结如下:

    from Item in Items

    [where BooleanExpression]

    select Item

    注:1> 其中Item为迭代变量,Items是要查询的集合的名字,且集合必须是可枚举的(即实现IEnumerable接口)。

      2> [where BooleanExpression]是可选的。

      今天就总结到这儿,当然查询表达式中还有一些可选的子句,如from...let...where...,orderby...,group...等子句,这些在实际应用中再去学习,最重要的是要对基本的查询表达式结构熟悉。

      明天将要总结的是标准查询运算符的部分,明天再续... ...

  • 相关阅读:
    Python开发入门与实战3-Django动态页面
    Python开发入门与实战2-第一个Django项目
    Python开发入门与实战1-开发环境
    牛客网剑指offer第12题——数值的整数次方
    再叙快速排序
    牛客网剑指offer第29题——最小的k个数
    牛客网剑指offer第59题——按之字形顺序打印二叉树
    牛客网剑指offer第33题——第N个丑数
    各种特征距离的计算方法及应用
    牛客网剑指offer第24题——二叉树中和为某一值的路径
  • 原文地址:https://www.cnblogs.com/mcgrady/p/2310427.html
Copyright © 2011-2022 走看看