1. Linq 基础概念

Linq 是什么

语言集成查询(Language Integrated Query), Linq 是.net 为我们提供的高效查询和高阶函数(求和等)的API,以便我们能够编写高度表达力的声明式代码;

Linq 能做什么

它提供对不同数据源的简化访问,不管使用哪种数据源,Linq都又一套类似的语法,使用Linq简化了我们的开发工作;

//比如查找具有特定属性值的所有 XML 元素
public static IEnumerable<XElement> FindAllElementsWithAttribute(XElement documentRoot, string elementName,
                                           string attributeName, string value)
{
    return from el in documentRoot.Elements(elementName)
           where (string)el.Element(attributeName) == value
           select el;
}
//为了执行此任务而编写代码来手动遍历 XML 文档会带来重重困难

Linq 不仅仅提供了与XML Docs,还提供了Linq To SQL,还可以使用JSON.NET 的Linq 有效地遍历Json文档,collections, ADO.Net DataSet, web service and other databases

Linq的用途

Linq 返回object是结果,可以让你使用面向对象开发,不用担心传输不同的格式到

The following example demonstrates a simple LINQ query that gets all strings from an array which contains 'a'.

// Example: LINQ Query to Array
    // Data source
string[] names = {"Bill", "Steve", "James", "Mohan" };

// LINQ Query
var myLinqQuery = from name in names
                where name.Contains('a')
                select name;

// Query execution
foreach(var name in myLinqQuery)
    Console.Write(name + " ");
// 完查询后你必须执行它才能得到结果;

Linq 的优势是什么

  • 相近的语法,用户不用再针对不同数据类型频繁学习新的查询语言
  • 更少的代码 比着传统的方式,Linq更加简洁,之前都是要用for或者foreach写一堆的代码
  • 可读性比较高 让代码看起来更加容易明白并掌握它
  • 针对不同的数据源却有标准的查询方式
  • 编译时安全的查询: 提供了类型检查
  • 智能提示支持:避免写错字段名词
  • 输出不同的数据格式:同一种数据,你可以输出为不同数据格式;

我们能够在哪儿使用Linq

上面一张图中向我们展示了Linq使用范围,另外在实现了IEnumerable 或IQueryable 接口的类上面都可以使用;

原文地址:https://www.cnblogs.com/maanshancss/p/13086664.html