LINQ查询表达式基础

news/2025/12/4 12:12:53/文章来源:https://www.cnblogs.com/xtyle/p/19306362

什么是查询?

查询是一组指令,描述要从给定数据源(或源)检索的数据以及返回的数据应具有的形状和组织。 查询与它生成的结果不同。

查询表达式是什么?

查询表达式是以查询语法表示的查询。 查询表达式是一流的语言构造。 它如同任何其他表达式一样,可以在 C# 表达式有效的任何上下文中使用。 查询表达式由一组用类似于 SQL 或 XQuery 的声明性语法所编写的子句组成。 每个子句依次包含一个或多个 C# 表达式,而这些表达式可能本身就是查询表达式,或者包含查询表达式。

查询表达式必须以 from 子句开头,且必须以 select 或 group 子句结尾。 在第一个 from 子句与最后一个 select 或 group 子句之间,可以包含以下这些可选子句中的一个或多个:where、orderby、join、let,甚至是其他 from 子句。 还可以使用 into 关键字启用 join 或 group 子句的结果,作为同一查询表达式中更多查询子句的源。

查询变量

在 LINQ 中,查询变量是存储查询而不是查询结果的任何变量。 更具体地说,查询变量始终是可枚举类型,在 foreach 语句或对其 IEnumerator.MoveNext() 方法的直接调用中循环访问时会生成元素序列。

下面的代码示例演示一个简单查询表达式,它具有一个数据源、一个筛选子句、一个排序子句并且不转换源元素。 select 子句标志着查询的结束。

// Data source.
int[] scores = [90, 71, 82, 93, 75, 82];// Query Expression.
IEnumerable<int> scoreQuery = //query variablefrom score in scores //requiredwhere score > 80 // optionalorderby score descending // optionalselect score; //must end with select or group// Execute the query to produce the results
foreach (var testScore in scoreQuery)
{Console.WriteLine(testScore);
}// Output: 93 90 82 82

在前面的示例中,scoreQuery 是一个 查询变量, 有时仅被称作 查询。 查询变量不存储在 foreach 循环生成中的任何实际结果数据。 并且当 foreach 语句执行时,查询结果不会通过查询变量 scoreQuery 返回。 而是通过迭代变量 testScore 返回。

查询变量可以存储采用查询语法、方法语法或是两者的组合进行表示的查询。 在以下示例中,queryMajorCities 和 queryMajorCities2 都是查询变量:

City[] cities = [new City("Tokyo", 37_833_000),new City("Delhi", 30_290_000),new City("Shanghai", 27_110_000),new City("São Paulo", 22_043_000)
];//Query syntax
IEnumerable<City> queryMajorCities =from city in citieswhere city.Population > 30_000_000select city;// Execute the query to produce the results
foreach (City city in queryMajorCities)
{Console.WriteLine(city);
}// Output:
// City { Name = Tokyo, Population = 37833000 }
// City { Name = Delhi, Population = 30290000 }// Method-based syntax
IEnumerable<City> queryMajorCities2 = cities.Where(c => c.Population > 30_000_000);
// Execute the query to produce the results
foreach (City city in queryMajorCities2)
{Console.WriteLine(city);
}
// Output:
// City { Name = Tokyo, Population = 37833000 }
// City { Name = Delhi, Population = 30290000 }

换句话来说,查询语法、方法语法其实就是LINQ语句跟LINQ方法,LINQ语句跟LINQ方法也可以混合着适用。


开始查询表达式

查询表达式必须以 from 子句开头。 它指定数据源以及范围变量。 范围变量表示遍历源序列时,源序列中的每个连续元素。

结束查询表达式

查询表达式必须以 group 子句或 select 子句结尾。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/986685.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025 年羽绒蓬松度天花板!这 5 家羽绒供应商凭什么征服高端市场?

2025 年羽绒蓬松度天花板!这 5 家羽绒供应商凭什么征服高端市场?一、高蓬松度羽绒为何成为行业 “硬通货”? 在羽绒制品领域,蓬松度是衡量保暖性能的核心指标 —— 数值越高,绒朵锁温能力越强,同等重量下保暖性更…

狂揽 19000+ Star 的国产开源项目

狂揽 19000+ Star 的国产开源项目最近又看到新闻说,某某网站因为 SQL 注入被黑了,数据库直接被拖走,在技术社区上引起大家一番激烈的讨论。 忽然想起自己手上几个小站点,心里多少有点慌,现在的攻击手段五花八门,…

2025除尘羽绒工厂怎么选?这 5 家实力派企业值得关注

2025除尘羽绒工厂怎么选?这 5 家实力派企业值得关注在羽绒制品市场,除尘技术是衡量产品品质的核心指标之一,尤其对呼吸道敏感人群和追求健康生活的消费者而言,选择一家具备专业除尘工艺的工厂至关重要。本文将从技…

【ETCD】ETCD单节点二进制部署(TLS) - 教程

【ETCD】ETCD单节点二进制部署(TLS) - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "…

掌握比特币:开放区块链编程全解析

这是一本全面且深入的比特币技术指南,由权威专家撰写,涵盖了从密钥、钱包、交易到网络、挖矿和安全等核心概念。通过实际代码示例和清晰讲解,本书为开发者、技术爱好者和专业人士提供了理解和参与互联网货币时代所需…

GEO优化源头厂家口碑排行,GEO优化AI搜索/广告全案策划、制作、发布/短视频矩阵/GEO优化AI工具排名GEO优化品牌口碑推荐榜

随着人工智能技术深度融入信息获取场景,GEO(搜索引擎优化)的内涵正从传统搜索引擎向AI工具平台延伸。在杭州这座数字经济的桥头堡,一批深耕多年的广告与营销服务商,凭借对媒体生态的深刻理解和技术的前瞻布局,已…

网站发布时间修改怎么修改(如何在网站后台修改文章发布时间)

在网站后台修改文章的发布时间,通常需要根据具体的 CMS 系统(如 WordPress、PbootCMS、DedeCMS 等)进行操作。以下是通用的操作步骤和一些常见 CMS 的具体方法:通用操作步骤登录后台管理系统使用管理员账号登录网站…

pbootcms站点信息调用(PbootCMS站点信息调用标签详解与使用指南)

1. 站点信息调用概述适用范围:全站任意地方均可使用。 标签作用:用于调取网站的基本配置信息,对应后台的“基础内容 > 站点信息”。 版本说明:V1.1.6+新增部分标签,推荐优先使用新标签。2. 常用站点信息标签 以…

MATLAB归一化随机共振代码

MATLAB实现,用于模拟和分析归一化随机共振现象。随机共振是一种非线性现象,当弱周期性信号与适当强度的噪声共同作用时,系统输出信噪比会显著提高。 %% 归一化随机共振仿真 % 功能: 实现双稳态系统的归一化随机共振…

2025年11月绩效管理咨询公司专业评价:行业标杆机构实力排行

作为企业管理者,在推动组织效能提升的过程中,绩效管理咨询服务的需求日益凸显。根据中国企业联合会发布的数据显示,2024年有超过68%的规模以上企业开展了绩效管理体系优化项目,其中约45%的企业选择借助外部专业咨询…

全球雇佣好帮手!国际 EOR 服务商推荐Safeguard Global,企业跨境雇佣不踩坑

在全球化加速推进的背景下,越来越多中国企业将目光投向海外市场,寻求业务增长新空间。然而,跨境雇佣所涉及的法律、税务、社保及本地用工合规问题,成为企业出海过程中不可忽视的挑战。面对“海外名义雇主EOR公司推…

pbootcms模板tag标签调用(PbootCMS Tag标签调用全攻略:从基础到进阶)

以下通过表格形式展示不同场景下的Tag标签调用方法。 表格 1:内容页Tag标签调用场景 调用代码 说明内容页标签 {pboot:tags id={content:id}}<a href="[tags:link]">[tags:text]</a>{/pboot:ta…

2025 出海企业必备:墨西哥名义雇主 EOR 服务商推荐Safeguard Global专业人力资源公司

随着北美自由贸易协定(USMCA)的深化实施,墨西哥凭借连接北美与拉美市场的战略区位、具有竞争力的劳动力成本以及制造业、信息技术领域的人才优势,成为中国出海企业拓展美洲市场的重要枢纽。然而,企业在墨西哥开展…

pbootcms上传缩略图截取尺寸缩小变模糊解决方案(PbootCMS缩略图模糊问题解决方案)

问题原因分析默认缩略图尺寸限制PbootCMS默认对缩略图的宽度和高度设置了最大值(max_width 和 max_height),如果上传的图片尺寸超过这些限制,系统会自动压缩图片,可能导致模糊。未匹配后台设置如果后台未正确配置…

2025年减震隔音板,隔音板批发,隔音板安装厂家最新推荐:企业减震工艺与售后安装保障解读

隔音板厂家测评引言在建筑装饰行业,隔音板的质量和性能对于营造安静舒适的空间至关重要。为了给消费者提供权威、可靠的隔音板厂家推荐,我们依据行业协会的测评数据以及相关白皮书内容,开展了本次测评。本次测评综合…

Nuxt.js v4中使用quill富文本组件

第一步:安装 使用包管理器 npm 或 yarn来安装 VueQuill。 npm install @vueup/vue-quill@latest --save # 或者 yarn add @vueup/vue-quill@latest第二步:完成配置 (1)打开nuxt.js的nuxt.config.ts配置文件,添加如…

2025年牛油火锅底料配方批发厂家权威推荐榜单:火锅底料生产厂家‌/火锅底料工厂‌/火锅底料厂家‌精选

在火锅餐饮行业蓬勃发展的今天,拥有风味独特且品质稳定的火锅底料配方,已成为门店建立核心竞争力的关键要素。数据显示,在2025年的火锅行业中,超过70% 的消费者选择餐厅时,口味独特性与稳定性是首要考虑因素。对于…

pbootcms模板导航调用方法(PbootCMS模板导航调用方法指南)

在PbootCMS中,通过 {pboot:nav} 标签可以轻松实现导航菜单的调用。本文将详细介绍如何调用一级、二级和三级导航,并提供清晰的操作步骤和代码示例。1. 一级导航调用 示例代码:{pboot:nav} <a href="[nav:li…

仓储接口无法解析出仓储实现实例时需要手动加载仓储实现的程序集

仓储接口无法解析出仓储实现实例时需要手动加载仓储实现的程序集当遇到仓储接口无法解析出仓储实现实例时需要手动加载仓储实现的程序集:ModuleBase.LoadAssembly("OPPharmacyManagement.Library, Version=3.0.0…

2025年上海代办注册公司排行榜:注册公司代办要花多少钱?

为帮助创业者高效解决公司注册的流程困惑、成本焦虑与合规风险,避免因选择不当踩坑,我们从服务合规性(资质背书、地址合法性)、办理效率(下证时长、流程简化度)、成本透明度(无隐性收费、价格区间)、附加价值(…