LINQ
来源:互联网 发布:mac 如何安装ipython 编辑:程序博客网 时间:2024/06/05 22:04
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;
}
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;
是不是覺得很像SQL呢? 這段程式碼的意思是,由people中選出Age大於12小於20的元素,
除了這種簡單的查詢之外,Linq 也支援Join,Distinct等語法.
基本上Linq只是一組Library,C# 3.0及VB.NET 9.0的Complier利用了這個Library來實現
上面的新語法,所有的特殊語法都會被編譯器編成使用Linq Library的程式.
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;
}
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;
是不是覺得很像SQL呢? 這段程式碼的意思是,由people中選出Age大於12小於20的元素,
除了這種簡單的查詢之外,Linq 也支援Join,Distinct等語法.
基本上Linq只是一組Library,C# 3.0及VB.NET 9.0的Complier利用了這個Library來實現
上面的新語法,所有的特殊語法都會被編譯器編成使用Linq Library的程式.
Linq 讓程式語言又進化了.
- LINQ
- LINQ
- LINQ
- LINQ
- LINQ
- LINQ
- LINQ
- LINQ
- LINQ
- LINQ
- LINQ
- LINQ
- LINQ
- LINQ
- LINQ
- LINQ
- LINQ
- LINQ
- 如何编写高质量的代码——来自《代码大全(第2版)》的启示
- Windows API一日一练(53)CreateFile函数
- Asp.net 2.0自定义控件(点击HyperLink后执行事件)[网友问题: DataList里HyperLink控件激发事件,在哪定义?]
- deplate(Viki) 全面定制
- Windows API一日一练(52)GetCurrentDirectory和SetCurrentDirectory函数
- LINQ
- 小试一把 64 位 Windows 编程
- 候捷谈Java反射机制(二)
- 在Gridview中设置日期字段的显示格式为yyyy-MM-dd
- 去掉 deplate(Viki) 生成的 html 文件行尾多余的空格。
- Windows API一日一练(50)SuspendThread和ResumeThread函数
- CC2e:《代码大全(第2版)》集萃
- Asp.net 2.0 自定义控件开发[实现自动计算功能(AutoComputeControl)][示例代码下载]
- Windows API一日一练(49)SetThreadPriority和GetThreadPriority函数