.NET基础学习(LINQ)

来源:未知 责任编辑:责任编辑 发表时间:2015-01-01 13:18 点击:

什么是LINQ

LINQ(发音为link)代表语言集成查询(Language Integrated Query)
详细见LINQ
匿名类型

第一个成员初始化器是赋值形式,第二个是成员访问表达式,第三个是标示符形式,如下实例所示:

1  string Sex = "男";
2  var person = new { Age = 24, SimpleClass.Name, Sex };
3  Console.WriteLine("{0},Sex{1},Age {2}",person.Name,person.Sex,person.Age);消除行号
运行结果:

 \

 

注意标示符形式和访问表达式必须定义在匿名类型申明之前,Sex是一个局部变量,Name是类SimpleClass的静态字段。

尽管在代码中看不到匿名类型,对象浏览器却能看到。如果编译器遇到了另一个具有相同参数名、相同引用类型名和相同顺序的匿名类型,它会重用这个类型并直接创建新的实例,而不会创建新的匿名类型。

查询语法和方法语法

查询语法(query syntax)是声明形式的,看上去和SQL的语句很相似。查询语法使用查询表达式书写。
方法语法(method syntax)是命令形式,它的使用是标准的方法调用。方法是一组叫做标准查询运算符的方法。
在一个查询中也可以组合以上两种形式。
示例代码如下所示:

 1  var query1 = from n in Enumerable.Range(1, 10)
 2               where n < 8
 3               select n;
 4  Console.Write("查询语法得到结果:");
 5  foreach (var v in query1) Console.Write("{0}\t",v);
 6
 7  var query2 = Enumerable.Range(1, 8).Where(n => n < 8);
 8  Console.WriteLine("");
 9  Console.Write("方法语法得到结果:");
10  foreach (var v in query2) Console.Write("{0}\t", v);
11
12  int count = (from n in Enumerable.Range(1, 10)
13               where n < 8
14               select n).Count();
15  Console.WriteLine("");
16  Console.WriteLine("两种方式的组合:{0}", count);运行结果:

 \


 

查询表达式的结构

1、from子句

from子句指定了要作为数据源使用的数据集合。它也引入了迭代变量,迭代变量有序表示数据源的每一个元素。
1 int[] arr = { 1, 5, 9, 8, 45, 23, 26, 14, 7, 8, 9 };
2 var query = from n in arr //(n->迭代变量)
3             where n < 10  //使用迭代变量
4             select n;     //使用迭代变量
5 foreach (var v in query) Console.Write("{0}\t",v);
6 Console.WriteLine("");消除行号
运行结果:

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • 浅析.NET下XML数据访问新机制
  • asp.net 面试+笔试题目第1/2页
  • C# 邮件地址是否合法的验证
  • asp.net 设置GridView的选中行的实现代码
  • C#高级编程:数据库连接[1]
  • 经典C++程序1
  • IIS 自动回收导致后台定时器失效的问题解决
  • ASP.NET&#160;GridView列表代码示例
  • Asp.net MVC源码分析--Action Filter的链式调用
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1