我对linq的初步认识

 

LINQ,语言级集成查询(Language INtegrated Query)

经过了最近 20 年,面向对象编程技术( object-oriented (OO) programming technologies )在工业领域的应用已经进入了一个稳定的发展阶段。程序员现在都已经认同像 类(classes)、对象(objects)、方法(methods)这样的语言特性。考察现在和下一代的技术,一个新的编程技术的重大挑战开始呈现出来,即面向对象技术诞生以来并没有解决降低访问和整合信息数据( accessing and integrating information )的复杂度的问题。其中两个最主要访问的数据源与数据库( database )和 XML 相关。


  LINQ 提供了一条更常规的途径即给 .Net Framework 添加一些可以应用于所有信息源( all sources of information )的具有多种用途( general-purpose )的语法查询特性( query facilities ),这是比向开发语言和运行时( runtime )添加一些关系数据( relational )特性或者类似 XML 特性( XML-specific )更好的方式。这些语法特性就叫做 .NET Language Integrated Query (LINQ) 。

包含 DLinq 和 XLinq
不经意间在网上看到这样的代码:

var query = from item in languages
                orderby item
                group item by item.Length into lengthGroups
                orderby lengthGroups.Key descending
                select lengthGroups


开始还以为为是写的sql语句,后来再次遇到才知是c#3.0中的新特性。下面简单介绍一下新种新的类似与sql语句的语法
1 什么是linq
liq 是Language Integrated Query 的缩写
回忆我们经常写过的sql语句 "select  top 10* from news  order by id asc " 之类的语句。linq 的出现 完全可以将我们熟悉的SQL中像"select","from","where"等语句,LINQ查询语法跟SQL查询语法很相识,除了先后顺序.可以在.NET Framework环境中顺利使用并且大大提高开发的效率。
LINQ 提供了一条更常规的途径即给 .Net Framework 添加一些可以应用于所有信息源( all sources of information )的具有多种用途( general-purpose )的语法查询特性( query facilities ),这是比向开发语言和运行时( runtime )添加一些关系数据( relational )特性或者类似 XML 特性( XML-specific )更好的方式。这些语法特性就叫做 .NET Language Integrated Query (LINQ) 。
要想使用应先下载LinQ框架 安装以后来体验一下这种新的语法
查询一个int 数组中小于5的数字,并按照大小顺序排列:


class Program
{
    static void Main(string[] args)
    {
        int[] arr = new int[] { 8, 5, 89, 3, 56, 4, 1, 58 };
        var m = from n in arr where n < 5 orderby n select n;
        foreach (var n in m)
        {
            Console.WriteLine(n);
        }
        Console.ReadLine();
    }
}


这种的语法是不是和sql 语法非常像似呢。只是sql的写法一般select 在前而linq是在后的

posted on 2009-05-23 22:10  冉元胜  阅读(198)  评论(0编辑  收藏  举报

导航