LINQ简述

语言集成查询 (LINQ) 是一系列直接将查询功能集成到 C# 语言的技术统称。

为什么需要LINQ?

查询是一种从数据源检索数据的表达式。 查询通常用专门的查询语言来表示。 随着时间的推移,人们已经为各种数据源开发了不同的语言;例如,用于关系数据库的 SQL 和用于 XML 的 XQuery。 因此,开发人员对于他们必须支持的每种数据源或数据格式,都不得不学习一种新的查询语言。 LINQ 通过提供处理各种数据源和数据格式的数据的一致模型,简化了这一情况。 在 LINQ 查询中,始终会用到对象。 可以使用相同的基本编码模式来查询和转换 XML 文档、SQL 数据库、ADO.NET 数据集、.NET 集合中的数据以及 LINQ 提供程序可用的任何其他格式的数据。

简单来说,LINQ简化了对不同数据源的查询,LINQ通过对象的方式来对数据源的内容进行查询,筛选,排序,转换等操作

常见用途:

  • .NET原生的集合(List,Array,Dictionary等)
  • 数据库实体对象
  • XML文档
  • Json文档

LINQ的两种写法:

1、查询表达式(用于比较复杂的排序,统计等,更接近Sql表达式)

2、链式表达式(有很多比较方便的扩展方法)

//  查询表达式示例:
int[] scores = { 97, 92, 81, 60 };

IEnumerable scoreQuery =
    from score in scores
    where score > 80
    select score;

//  链式表达式示例:
IEnumerable scoreQuery = scores.Where(x => x > 80);

重要概念:

  1. 延迟执行:查询变量本身只存储查询命令。只有产生消耗时才会真的去执行。
  2. 消耗:消耗指的是对查询变量进行进一步操作。以下操作都是消耗。
  • 遍历
  • ToList() , ToArray() , ToDictionary()
  • Count() , Min() , Max() , Sum()
  • Take() , First() , Last()

更多内容可以翻阅C#官方文档:语言集成查询(LINQ)

你可能感兴趣的:(C#,linq,c#)