Linq是C#中的一个强大的特性,Linq本来是为了解决写数据库查询SQL语句而发明的,在代码里面写SQL语句一般都是STRING类型,没有语法提示,不能进行调试。而Linq提供类似SQL的语法,而且可以即时查错,利用Linq,几乎可以对数据进行SQL语句做到的任保操作。本质上Linq的操作对像必须实现IEnumeralbe接口,像数组,List等C#内置类型都实现了该接口,所有可以用Linq对其进行操作。
Linq原本是为替代SQL而生的,然而现在的.Net版本已经放弃了Linq to SQL,因为对于SQL,已经出现了更为强大的持久化对像来映射数据库表,对持久化对像的操作显然要手动写SQL来得直接,而且持久化对像如DataSet中,可以进行复杂的连接、投影等操作,只有少数情况下,复杂的SQL查询用Linq写才显得更直接。
虽然Linq已经不用于数据库了,但其而向所有实现IEnumeralbe对像的特性可对让我们轻松地使用Linq对Json数据、XML数据进行查询,而不是使用循环。