当前位置: 首页 > news >正文

潍坊网站建设小程序制作深圳活动策划设计机构

潍坊网站建设小程序制作,深圳活动策划设计机构,企业网站制作优化,做网站备案什么意思一、LINQ 架构体系 1. LINQ 的核心思想 统一查询模型:对对象、XML、数据库等不同数据源使用一致的语法。强类型检查:编译时类型安全,减少运行时错误。 2. 核心组件 技术数据源典型场景LINQ to Objects内存集合 (IEnumerable)过滤/排序集合…
一、LINQ 架构体系

1. LINQ 的核心思想

  • 统一查询模型:对对象、XML、数据库等不同数据源使用一致的语法
  • 强类型检查:编译时类型安全,减少运行时错误。

2. 核心组件

技术数据源典型场景
LINQ to Objects内存集合 (IEnumerable)过滤/排序集合数据
LINQ to XMLXML 文档解析/查询 XML 节点
LINQ to SQL关系数据库将查询翻译为 SQL 执行

关键代码示例

// LINQ to Objects
var numbers = new List<int> { 1, 2, 3 };
var query = numbers.Where(n => n > 1);// LINQ to XML
XDocument doc = XDocument.Load("data.xml");
var elements = doc.Descendants("Book").Where(x => (int)x.Element("Price") > 50);// LINQ to SQL(伪代码)
var db = new DataContext();
var users = db.Users.Where(u => u.Age > 18);

二、查询表达式 vs 方法语法

1. 本质区别

  • 查询表达式:类 SQL 语法(from...where...select),可读性高。
  • 方法语法:链式调用扩展方法(Where()/Select()),灵活性更强。

2. 转换关系
所有查询表达式会被编译器翻译为方法语法

代码对比

// 查询表达式
var query1 = from num in numbers where num % 2 == 0 select num * 2;// 方法语法
var query2 = numbers.Where(num => num % 2 == 0).Select(num => num * 2);

三、IEnumerable 接口解析

1. 核心机制

  • IEnumerable:定义迭代能力(通过 GetEnumerator())。
  • IEnumerator:实现遍历逻辑(MoveNext()Current)。

2. LINQ 的延迟执行

  • 查询定义时不执行,直到迭代结果(如 foreachToList())时才触发。

代码验证延迟执行

var numbers = new List<int> { 1, 2, 3 };
var query = numbers.Select(n => {Console.WriteLine($"Processing {n}");return n * 2;
});// 此时无输出
foreach (var num in query) { } // 输出:Processing 1, Processing 2, Processing 3

四、创建首个 LINQ 查询(三步法)

1. 定义数据源

var products = new List<Product> {new Product { Name = "Apple", Price = 15 },new Product { Name = "Laptop", Price = 5000 },new Product { Name = "Book", Price = 80 }
};

2. 编写查询

// 方法语法
var expensiveProducts = products.Where(p => p.Price > 100).OrderBy(p => p.Name);

3. 执行查询

foreach (var product in expensiveProducts)
{Console.WriteLine(product.Name);
}

五、练习:集合过滤与投影

任务 1:过滤数据

// 数据源
var numbers = Enumerable.Range(1, 100);// 目标:选出 3 的倍数且大于 50 的数字
var result = numbers.Where(n => n % 3 == 0 && n > 50);

任务 2:投影转换

// 数据源
var persons = new List<Person> { /* 包含姓名和年龄的对象 */ };// 目标:生成 { Name = "张三", Initial = 'Z' } 形式的新对象
var initials = persons.Select(p => new {Name = p.Name,Initial = p.Name[0]
});

六、扩展思考
  1. 如何通过 yield return 自定义一个延迟执行的 LINQ 操作?
  2. IQueryableIEnumerable 在查询数据库时的区别?
  3. 如何组合 Where().OrderBy().Select() 实现复杂查询?

http://www.dtcms.com/a/438852.html

相关文章:

  • 《SaaS网关多租户治理:从串流到稳控的实践》
  • 网站后台登录地址修改大诚设计网站建设
  • 官方网站开发制作公司做亚马逊跨境电商赚钱吗
  • 【读书笔记】VC++软件快捷键
  • AT_abc328_g Cut and Reorder 题解
  • 怎样把自己的网站进行推广国际国内时事新闻
  • 为什么isis比ospf更具有扩展性
  • Windows 10系统编程——进程专题:枚举我们进程的状态
  • 【开题答辩实录分享】以《基于协同过滤算法的经济型酒店推荐系统》为例进行答辩实录分享
  • 湘潭网站建设 都来磐石网络wordpress首页设计
  • labelme 创建AI多边形功能
  • 生物信息 R语言和 cytoscape 相互沟通的组件RCy3,构建cytoscape网络表 节点类型表 链接边的表,并推送到cytoscape
  • 你们需要网站建设怎么注销公司法人身份
  • 序列化和反序列化(redis为例)
  • 之江汇学校网站建设wordpress 不显示评论
  • 洛谷 - 背包题目详解(超详细版)
  • 自主进化的AI大模型架构设想(解决大模型时效性问题):知识网络的拓扑设计
  • 网站建设所需费用明细应不应该购买老域名建设新网站
  • 突破传统!基于SAM架构的双模态图像分割:让AI“看见“红外与可见光的完美融合
  • Agentic Schemas:构建未来多智能体协作架构的实践蓝图
  • 血玥珏-MIDI音符合理性筛选处理器 v1.0.0.6 使用说明
  • 网站建设维诺之星抖音seo排名源码
  • 深入理解:Rust 的内存模型
  • 深圳建站公司推荐宣传片制作费用报价表
  • Zig 语言通用代码生成器:逻辑冒烟测试版五,数据库自动反射功能
  • 基于 GEE 制作研究区遥感影像可用性地图
  • 微PE | 辅助安装Window系统
  • 企业网站怎么维护易语言做试用点击网站
  • (单调栈)洛谷 P6875 COCI 2013/2014 KRUŽNICE 题解
  • 地图网站怎么做中国的外贸企业有哪些