您的位置:首页 > 编程语言 > C#

C#3.5 新特性(二)——LINQ

2009-01-11 16:23 429 查看
Linq(语言级集成查询),这个东西有点类似SQL语句

select语法:
所有的Linq查询有下面基本的3个行为构成:
1,包含数据源
2,创建查询
3,执行查询
下面就是一段代码,表示了查询操作的3部分
using System;
using System.Collections.Generic;
using System.Linq; //这就是LINQ所属的命名空间,在vs2003和vs2005是没有的,它现在已经登场了!
using System.Text;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
//第1步: 包含数据源.
string[] strings = new string[4] { "江苏省无锡市", "江南大学——江南第一学府", "太糊学院——垃圾", "明言祥语" };
//第2步: 创建查询.
var query = from item in strings
// 注意:这里的关键词var是C#3.0里才有的特性,叫做“隐含类型”它将告诉编译器,你自己去判断变量的类型吧,编译器会根据不同环境为变量确定不同的类型,语言的使用者又可以偷懒了,^_^。 例如:
var a = 5 ; 编译器就会确定变量a的类型为int
var str ="江南大学太湖学院"; 编译器就会确定变量str的类型为string 。
还有一点就是,var只能用于局部变量!
orderby item
group item by item.Length into lengthGroups
orderby lengthGroups.Key descending
select lengthGroups;
//上面这句代码就是LINQ查询语句,非常简练,望文生义就能看懂,从语法结构上讲和SQL语句完全相似,之所以说"相似"因为它和SQL语句还是有点区别的,SQL语句的“select”关键词在前面,而LINQ放在了最后面。
// 第3步: 执行查询.
foreach (var item in query)
{
Console.WriteLine("strings of length ", item.Key);
foreach (var val in item)
{
Console.WriteLine(val);
}
}
}
}
}
上面例子中的数据源类型是数组,,是它作为Linq查询的数据源,这是Linq查询是如何执行的。其中的 into 关键字表示将前一个查询的结果视为后续查询的生成器,这里是跟 groupby一起使用的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐