zoukankan      html  css  js  c++  java
  • LINQ学习笔记(二)

    LINQ语法基础

      1  C#3.0新的语言机制

        (1)隐形局部变量

        (2)对象初始化器

        (3)匿名类型

        (4)隐形数组

        (5)Lambda表达式

        (6)查询表达式

        (7)扩展表达式

        (8)表达式树

      2 使用var创建隐形局部变量

        C#3.0使用var关键字声明变量。var关键字指示编译器能够变量初始化表达式判断变量的类型,即是用var关键字声明变量时,隐藏了该变量的类型。

       (1)var关键字声明声明的变量必须包含一个初始化器,初始化器必须为一个表达式。且初始化器不能包含自身对象;

        (2) var关键字声明的变量的初始化值不能为null;

        (3) 不能在同一语句中初始化多个隐式类型的变量

      3 对象和集合初始化器

        对象初始化器可以不调用类的构造函数就能够创建类的实例,并设置该实例的属性的值。

        集合初始化器用来初始化一个集合,它由一系列元素组成,并封闭于"{"和"}"标记内

       (1)对象初始化器

            UserInfo user=new UserInfo

             {

                ID=2008,

                 Username="This is a book",

                 AliasName=new List<string>{"ASP.NET"},

                 Email="asp.net@web.com",

                 RoleID=2

             };

         (2) 集合初始化器

             List<int> number=new List<int>{0,1,2,3,4,5,6,7,8,9};

                        集合初始化器调用ICollection<T>.Add()方法将初始化器的值列表中的每一         个元素添加到集合中,并完成初始化操作。

             List<int> numbers=new List<int>();

             numbers.Add(0);

                  numbers.Add(1);

                  numbers.Add(2);

             numbers.Add(3);

                  numbers.Add(4);

                  numbers.Add(5);

      4  创建匿名类型的对象

          var role=new {ID=1,RoleName="Admin"};

      5  创建隐形数组

          隐形数组使用var关键字和数组初始化器创建。数组初始化器中必须存在一种数       据类型(不能为null),使得数组初始化器中的所有元素都能够隐式转换为该类        型的对象

          var numbers =new[]{0,1,2,3,4,5,6,7,8,9}

          下面的代码将产生错误

          var errors=new[]{"he,"she","it","1","2"};

      6   Lambda表达式

          Lambda表达式是一个匿名函数,它可以包含表达式和语句,并且可用于创建委托       和表达式目录树类型。

          Lambda表达式的组成:

           输入参数(如果存在)

           Lambda运算符(=>)

           表达式(或语句块)

          (input parmeters) => expression

            x => x * x;

         (1)Lambda表达式的参数

              没有参数时可以省略括号;有一个参数时可以省略;一个以上参数时必须          加括号

         (2)Lambda表达式的语句

              Lambda运算符的右边不但可以是一个表达式,还可以是语句块

          (3) Lambda表达式转换

              每一个Lambda表达式都可以转换为相应的函数

       7   查询表达式

           查询表达式由一组用类似于SQL或XQuery的声明性语法编写的字句组成

          (1) 查询表达式基础

                查询表达式包含8个基本子句:from、select、group、where、orderby              join和let子句

          (2) 查询表达式的基本子句(略)

               

  • 相关阅读:
    leetcode 190 Reverse Bits
    vs2010 单文档MFC 通过加载位图文件作为客户区背景
    leetcode 198 House Robber
    记忆化搜索(DP+DFS) URAL 1183 Brackets Sequence
    逆序数2 HDOJ 1394 Minimum Inversion Number
    矩阵连乘积 ZOJ 1276 Optimal Array Multiplication Sequence
    递推DP URAL 1586 Threeprime Numbers
    递推DP URAL 1167 Bicolored Horses
    递推DP URAL 1017 Staircases
    01背包 URAL 1073 Square Country
  • 原文地址:https://www.cnblogs.com/BigSeaHorse/p/LINQ_Study_2.html
Copyright © 2011-2022 走看看