本文向大家介绍Linq Library,可能好多人还不了解Linq Library,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西。
PDC 05上揭露了C# 3.0及Linq Project,什么是Linq呢?简单的说,Linq是一个语言层级的查询语法Library,她可以让我们以类SQL语法的方式来查询语言中的变数,例如阵列,Collections.以实例来说:
static void ObjectQuery()
{
var people = new List ()
{
new Person { Age=12, Name="Bob" },
new Person { Age=18, Name="Cindy" },
new Person { Age=13 }
};
var teenagers = from p in people where p.Age > 12 && p.Age < 20 select p;
Console.WriteLine("Result:");
foreach(var val in teenagers)
{
Console.WriteLine("> Name = {0}, Age = {1}", val.Name, val.Age);
}
Console.ReadLine();}
class Person
{
public int Age;
public string Name;
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
Person是一个类别,ObjectQuery函式中以Generic List建立了一个Person的Collection,此处的var型别是C# 3.0新增的型别,从语言面来看,这个型别可以被指定为任何型别,就像是Variant一样,从Complier面来看,它是一个Lazy- determine型别,由Complier于编译期间来决定真正的型别,接下来的奇特语法就是Linq.
var teenagers = from p in people where p.Age > 12 && p.Age < 20 select p;
- 1.
是不是觉得很像SQL呢?这段程式码的意思是,由people中选出Age大于12小于20的元素,除了这种简单的查询之外,Linq也支援Join,Distinct等语法.
基本上Linq只是一组Library,C# 3.0及VB.NET 9.0的Complier利用了这个Library来实现上面的新语法,所有的特殊语法都会被编译器编成使用Linq Library的程式.
【编辑推荐】