概述
这个网站上我经常被问到的一个问题是LINQ。我所问的问题广泛而多样,往往没有太多背景信息。因此,为了整合我所获得的关于Linq的知识,我发布了这个问题,并希望在继续学习LINQ的过程中保持并更新它的附加信息。
我也希望它能成为其他想要学习LINQ的人们的有用资源。
LINQ是什么?
来自MSDN:
The LINQ Project is a codename for a set of extensions to the .NET Framework that encompass language-integrated query, set, and transform operations. It extends C# and Visual Basic with native language syntax for queries and provides class libraries to take advantage of these capabilities.
这意味着LINQ提供了一种标准的方式,使用通用语法查询各种数据源。
LINQ有哪些不同的版本?
目前,微软提供了几个不同的LINQ提供程序:
- Linq to Objects 允许你在任何IEnumerable对象上执行查询。
- Linq to SQL 允许你以面向对象的方式在数据库中执行查询。
- Linq to XML 允许你查询、加载、验证、序列化和操作XML文档。
- Andrei建议使用Linq to Entities
- Linq to Dataset
还有很多其他的,其中许多在here列出。
LINQ有哪些好处?
- 标准化的查询多个数据源的方法
- 查询时编译时安全性
- 对内存中对象执行集合操作的优化方式
- 能力去调试查询
那么我可以用LINQ做什么?
Chook提供了一种输出CSV文件的方式
Jeff展示了如何从数组中移除重复项
Bob从datatable获取了一个不同有序列表
Marxidad展示了如何对数组进行排序
Dana获得了帮助,实现了使用Linq进行快速排序
从哪里开始?
GateKiller的问题的链接摘要如下:
Scott Guthrie在他的博客上提供了Linq简介
MSDN上关于LINQ的概述
ChrisAnnODell建议查看以下内容:
我需要什么来使用LINQ?
Linq目前可在VB.Net 9.0和C# 3.0中使用,因此您需要Visual Studio 2008或更高版本才能获得全部好处。(您可以在记事本中编写代码,并使用MSBuild进行编译)
还有一种称为LinqBridge的工具,它将允许您在C#2.0中运行类似Linq的查询。
使用LINQ的技巧和窍门
This question有一些使用LINQ的棘手方法