仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 639|回复: 11
打印 上一主题 下一主题

[学习教程] ASP.NET网站制作之Linq复杂利用(一)仓酷云

[复制链接]
小女巫 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:14:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
如果英语好,口才好,加上女孩子的优势说不定有机会进去做做别的工具)

  • 查询对象(上例中为list变量)为IEnumerable<T>或IQueryable<T>范例
  • 查询前往了局一样为IEnumerable<T>或IQueryable<T>范例
Linq分为:Linqtoobjects、LinqtoDataSets、LinqtoSQL、LinqtoEntities、LinqtoXML五类。

复杂利用


  • 范例查询变量=
  • from一时变量in汇合对象或数据库对象
  • [where前提表达式]
  • [orderby前提]
  • select一时变量或一时变量中被查询的值
  • [groupby]
①一般查询:

  • //数据源
  • int[]arr=newint[]{0,1,2,3,4,5,6,7,8,9};

  • //Linq查询
  • varresult=
  • fromiteminarr//声明一时变量item,并申明其为数组arr中的元素,item
  • whereitem>4
  • selectitem;//将查询了局(item)增加到result中

  • //遍历Linq查询了局,实践上是“Linq查询”是陪伴foreach实行的,即在foreach实行前“Linq查询”不会实行
  • foreach(intiinresult)
  • {
  • Console.Write(i);//输入56789
  • }
②查询并排序:

  • int[]arr=newint[]{0,1,2,3,4,5,6,7,8,9};

  • varresult=
  • fromiteminarr
  • whereitem>4
  • orderbyitemdescending//降序分列
  • selectitem;

  • foreach(intiinresult){
  • Console.Write(i);//输入:98765
  • }
③范例转换:

  • int[]arr=newint[]{0,1,2,3,4,5,6,7,8,9};

  • varresult=
  • fromiteminarr
  • whereitem>4
  • selectstring.Format("值:{0}",item);//转化为String范例,并格局化

  • foreach(stringiinresult){//变量i变动为string范例
  • Console.Write(i);//输入“值:5值:6值:7值:8值:8”
  • }
④查询单一值:

  • int[]arr=newint[]{0,1,2,3,4,5,6,7,8,9};

  • intresult0=(fromiteminarrwhereitem>4selectitem).Count();//全部语句被一堆()抱起来,统计数量
  • intresult1=(fromiteminarrwhereitem>4selectitem).Max();//查询最年夜值

  • Console.WriteLine(result0);//输入:5
  • Console.WriteLine(result1);//输入:9

from子查询


  • classProgram
  • {
  • staticvoidMain(string[]args)
  • {
  • //创立一个相似二维数组的泛型变量arr,用于存储先生信息
  • Listarr=newList
  • {
  • newStudent{name="李宁",scores=newList{11,12,34}},
  • newStudent{name="阿迪",scores=newList{11,16,34}},
  • newStudent{name="耐克",scores=newList{18,12}},
  • };

  • //查询先生分数年夜于15分的纪录
  • varresult=
  • fromstuinarr//声明一时变量stu
  • fromscinstu.scores//声明一时变量sc用于“子查询”,
  • wheresc>15
  • selectnew{name=stu.name,score=sc};//将查询了局“投影”到一个新的对象中,该对象有name和score两个属性。

  • foreach(varsinresult){
  • Console.WriteLine(s.name+":"+s.score);
  • }
  • }
  • }
  • classStudent
  • {
  • publicstringname;//先生姓名
  • publicListscores;//先生分数,一个先生能够有多个分数
  • }
输入了局:
  1. 李宁:34阿迪:16阿迪:34耐克:18
复制代码
上述示例,实践是每一个先生都与其分数做了屡次联系关系,并将查询了局存进新的对象(new{...})中。

联系关系多个数据源


  • //界说数据源
  • char[]upper={A,B,C};
  • char[]lower={x,y,z};

  • //联系关系两个数据源
  • varresult0=
  • fromupinupper
  • fromloinlower
  • selectnew{upper=up,lower=lo};

  • foreach(variteminresult0){
  • Console.WriteLine(item.upper+""+item.lower);
  • }

  • //联系关系两个数据源,并按前提选择
  • varresult1=
  • fromupinupper
  • fromloinlower
  • whereup!=B
  • selectnew{upper=up,lower=lo};

  • foreach(variteminresult1){
  • Console.WriteLine(item.upper+""+item.lower);
  • }
两次输入了局分离为:


分组

①复杂分组

  • classProgram
  • {

  • staticvoidMain(string[]args)
  • {
  • //界说数据源
  • List<Product>arr=newList<Product>
  • {
  • newProduct{name="衬衫",price=13.9m,cid=1},
  • newProduct{name="短裤",price=199.2m,cid=1},
  • newProduct{name="奥迪",price=1.6m,cid=2},
  • newProduct{name="奔腾",price=2.7m,cid=2},
  • newProduct{name="歼十",price=82.3m,cid=3},
  • newProduct{name="播音",price=91.3m,cid=3},
  • };

  • varresult=
  • frompinarr
  • grouppbyp.cid;

  • //遍历组别
  • foreach(vargpinresult){
  • Console.WriteLine("==============");
  • //遍历每构成员
  • foreach(varpdingp){
  • Console.WriteLine("{0}-{1}-{2}",pd.name,pd.price,pd.cid);
  • }
  • }

  • Console.Read();
  • }
  • }
  • classProduct
  • {
  • publicstringname;//商品称号
  • publicdecimalprice;//商品代价
  • publicintcid;//商品分类
  • }
此处的分组并不是SQL中的分组,SQL中的分组次要用于分组统计。而此处的分组是将本来“一维的数据”依照必定划定规矩分构成“二维的数据”,其输入了局:

②对组对象处置
既然话题已经抄起,我打算今晚发篇博文再引导一下舆论方向,使它再火两天,抛砖引玉,而且赵劼先生一直在跟帖,使.NET阵营的我感到万分难得。
沙发
发表于 2015-1-20 18:22:43 | 只看该作者
逐步缩小出错代码段的范围,最终确定错误代码的位置。
谁可相欹 该用户已被删除
板凳
发表于 2015-1-29 14:15:12 | 只看该作者
由于JSP/Servlet都是基于Java的,所以它们也有Java语言的最大优点——平台无关性,也就是所谓的“一次编写,随处运行(WORA–WriteOnce,RunAnywhere)”。除了这个优点,JSP/Servlet的效率以及安全性也是相当惊人的。
飘飘悠悠 该用户已被删除
地板
发表于 2015-1-30 12:21:17 | 只看该作者
同时也感谢博客园给我们这个平台,也感谢博客园的编辑们做成专题引来这么多高人指点。
小魔女 该用户已被删除
5#
发表于 2015-2-1 23:49:20 来自手机 | 只看该作者
网页从开始简单的hmtl到复杂的服务语言,走过了10多个年头,各种技术层出不穷,单个的主流技术也在不断翻新的版本,现在分析下各种语言的区别、优势、劣势、开发注意事项!
再见西城 该用户已被删除
6#
发表于 2015-2-4 13:42:02 | 只看该作者
但是java靠开源打出的一片天地,特别是在微软的垄断下能打开今天的局面还是有它的生命力的。
冷月葬花魂 该用户已被删除
7#
发表于 2015-2-10 00:14:12 | 只看该作者
我的意思是.net好用,从功能上来说比JAVA强还是很明显的。
金色的骷髅 该用户已被删除
8#
发表于 2015-2-28 08:59:22 | 只看该作者
虽然在形式上JSP和ASP或PHP看上去很相似——都可以被内嵌在HTML代码中。但是,它的执行方式和ASP或PHP完全不同。在JSP被执行的时候,JSP文件被JSP解释器(JSPParser)转换成Servlet代码,然后Servlet代码被Java编译器编译成.class字节文件,这样就由生成的Servlet来对客户端应答。所以,JSP可以看做是Servlet的脚本语言(ScriptLanguage)版。
只想知道 该用户已被删除
9#
发表于 2015-2-28 21:15:03 | 只看该作者
ASP.net1.1和2.0在程序上的语法也有很大不同,现在2.0属于新出来的,不知道半年后会不会有3.0(说笑一下)。Windows2003系统自动支持ASP和ASP.net环境,不用安装任何程序。Asp.net属于编译语言。ASP的最大不同(ASP属于解释语言)。
山那边是海 该用户已被删除
10#
发表于 2015-3-8 16:07:52 | 只看该作者
逐步缩小出错代码段的范围,最终确定错误代码的位置。
柔情似水 该用户已被删除
11#
发表于 2015-3-13 00:08:20 | 只看该作者
同时也感谢博客园给我们这个平台,也感谢博客园的编辑们做成专题引来这么多高人指点。
兰色精灵 该用户已被删除
12#
发表于 2015-3-20 06:26:08 | 只看该作者
ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-19 11:54

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表