技术及编程2.ppt

  1. 1、本文档共89页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
技术及编程2

LINQ从入门到精通 Web开发框架技术初级 天津理工大学华信软件学院 张一鸣 2011年6月24日 第二章 LINQ语法基础 张一鸣 2011年6月28日 本章主要内容 本章主要介绍LINQ的基本语法和常用关键字,以及对于延迟查询和扩展方法的分析。 LINQ查询表达式的特点 LINQ查询表达式的基本语法很容易掌握,它使用C#常见的语法构造,从外观看跟常见的关系型数据库查询语言SQL类似,并且查询表达式中的变量也可以使用上一章介绍的隐式类型局部变量,所以多数情况下,不需要制定变量类型就可以构建LINQ表达式。 2.1 LINQ查询 LINQ表达式的作用就是从给定的一个或多个数据源中,按照指定的条件检索数据,检索出的结果按照指定类型或表现形式返回。 数据源可以是数据库对象或XML文件流,也可以是实现IEnumerable T或IQueryableT接口的任何对象。 LINQ基于一套定义成扩展方法的查询操作符,该套查询操作符共包含8个上下文关键字,参见下表。 LINQ表达式关键字 例子2.1 LINQ表达式和SQL语句的区别 建立一个存放姓名的内存字符串数组用LINQ表达式查询姓名长度大于2串是否存在,存在的话显示出来。 class Program { static void Main ( string[ ] args ) { string[ ] values = { 巧巧, 李四, 林三哥, 王五 }; var value = from v in values where v.Length 2 select v; foreach ( var n in value ) Console.WriteLine ( n ); Console.ReadKey(); } } 例子2.1 的说明及运行结果 本题建立一个存放姓名的内存字符串数组并赋值,用以from子句开始的LINQ表达式查询姓名字符串大于2的名字,存在的话显示出来。 通过这个例子看到,LINQ表达式跟SQL语句语法上一个明显的区别就是: LINQ表达式是以from子句开头而不是像SQL语句那样使用select,LINQ表达式的结束则必须是select或group子句。 2.2 from子句 2.2.1 单个from子句 任何一个LINQ表达式都是以from子句开头的,例如: string [ ] values = {“网页”,“网站”,“网友”,“博客”,“微博”}; var value = from v in values where v.IndexOf ( “博” ) -1 select v; foreach ( var n in value ) Console.WriteLine ( n ); 其中,from子句确定values是数据源,v是存在于当前LINQ表达式中的范围变量。where子句筛选元素,select子句把找到的元素输出到value匿名类。 代码说明与运行结果 对于from子句中的范围变量v,如果没有指定数据类型,并且数据源类型实现了IEnumerable T接口,则编译器回根据数据源的数据类型自动推断出v的数据类型。该例运行结果如下: 例子2.2 使用LINQ查ArrayList 如果数据源仅仅实现了IEnumerable接口(例如ArrayList类型),则必须指定from子句中的范围变量v的数据类型。如下面的例子(GuestInfo类的代码): using System.Collections.Generic; namespace DemoLinq { /// 客户信息 public class GuestInfo { /// 姓名 public string Name { set; get; } /// 年龄 public int Age { set; get; } /// 电话 public string Tel { set; get; } /// 电话表 public Liststring TelTable { set; get; } } } 例子2.2 程序代码(续1) using System; using System.Collections; using S

文档评论(0)

xyz118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档