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

来源:互联网 发布:外国域名注册 编辑:程序博客网 时间:2024/06/05 16:20

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一起使用的。

 

原创粉丝点击