01-第一个Linq例子和理解结构化查询
LINQ(语言集成查询) 官方文档:Language Integrated Query (LINQ) – C# | Microsoft Learn LINQ全称:Language‑Integrated Query,中文:语言集成查询。 .NET版本:C#3.0 / .NET 3.5 开始内置,无需额外安装。需要命名空间 using System.Linq;,新版.NET支持隐式全局using,老版本需要手动添加。 传统方式查询数据需要写字符串形式SQL,编译不做类型检查、没有智能提示;不同数据源(数据库、XML、数组)要学不同查询语法。LINQ把查询变成C#语言一等语法构造,数组、List、XML、数据库可以使用一套查询写法。 LINQ主要分支 LINQ中把可迭代的对象集合叫做序列(sequence),绝大多数序列实现IEnumerable<T>接口;针对数据库远程查询则是IQueryable<T>,会生成表达式树,延迟翻译成SQL执行。 延迟执行(重要):定义LINQ查询表达式的时候不会执行查询;只有遍历(foreach)、调用FirstOrDefault()、Count()这类方法时才真正执行查询。 示例1:数组查询(LINQ to Objects) 需求:字符串数组,筛选以.cn结尾的域名 输出: 语法理解(类比SQL) LINQ有两套写法:查询语法(from‑where‑select) …