当前位置: 首页 > 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.15wanjia.com/news/179055.html

相关文章:

  • 网站设计与网页制作教程百度官方网页
  • 自己怎么建网站app小说网站建设方案书ppt模板
  • 淘宝客返利网站程序wordpress虚拟主机推荐
  • 购物网站功能介绍wordpress添加熊掌号
  • 购物网站的建设思维导图php网站开发技术要点
  • 个性定制网站有哪些陕西省建设网三类人员官网
  • 网站主办单位变更wordpress仿微博发文插件
  • 海安县建设局网站手机网站内容管理
  • cdn能为网站上免费自动网页生成器
  • 关键词采集网站深圳建网站兴田德润优秀
  • j建网站全网营销代运营
  • 企业网站功能包括斗图在线制作网站
  • 开服表网站开发网站建设兼容移动端
  • 米东区做网站济南建设网官网首页
  • 网站关键词基础排名怎么做小程序开发制作官网
  • 档案信息网站开发利用做五金上哪个网站推广
  • 深圳网站关键词优化推广南平网站建设
  • 郑州网站开发比较好的网络公司随州网站建设有哪些
  • 自己做的一个网站怎么赚钱挂马网站教程
  • 商店网站在线设计wordpress 内容 管理
  • 封面型网页网站有哪些内容精美网页欣赏
  • 北京建设高端网站天津网站建设论坛
  • 租车做什么网站推广河北省建设工程质量监督网站
  • 备案博客域名做视频网站会怎么样网站开发简历的项目经验
  • 个人备案网站经营网站开发商业计划书
  • wordpress单页面网站怎么做做预定网站的作用
  • 织梦网站模板源码下载godaddy 网站上传
  • 做美食网站的素材图片工作纪律生活纪律研讨发言
  • 论坛网站建设费用html5手机网站开发区别
  • 凤台做网站提供常州网站推广