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

windows C#-LINQ概述

语言集成查询 (LINQ) 是一系列直接将查询功能集成到 C# 语言的技术统称。 数据查询历来都表示为简单的字符串,没有编译时类型检查或 IntelliSense 支持。 此外,需要针对每种类型的数据源了解不同的查询语言:SQL 数据库、XML 文档、各种 Web 服务等。 借助 LINQ,查询成为了最高级的语言构造,就像类、方法和事件一样。

对于编写查询的开发者来说,LINQ 最明显的“语言集成”部分就是查询表达式。 查询表达式采用声明性查询语法编写而成。 使用查询语法,可以用最少的代码对数据源执行筛选、排序和分组操作。 可使用相同的基本查询表达式模式来查询和转换 SQL 数据库、ADO .NET 数据集、XML 文档和流以及 .NET 集合中的数据。

下面的示例展示了完整的查询操作。 完整的操作包括创建数据源、定义查询表达式和在 foreach 语句中执行查询。

// Specify the data source.
int[] scores = { 97, 92, 81, 60 };// Define the query expression.
IEnumerable<int> scoreQuery =from score in scoreswhere score > 80select score;// Execute the query.
foreach (int i in scoreQuery)
{Console.Write(i + " ");
}// Output: 97 92 81
查询表达式概述
  • 查询表达式可用于查询并转换所有启用了 LINQ 的数据源中的数据。 例如,通过一个查询即可检索 SQL 数据库中的数据,并生成 XML 流作为输出。
  • 查询表达式易于掌握,因为它们使用了许多熟悉的 C# 语言构造。
  • 查询表达式中的变量全都是强类型,尽管在许多情况下,无需显式提供类型,因为编译器可以推断出。
  • 只有在循环访问查询变量后,才会执行查询(例如,在 foreach 语句中)。 有关详细信息,请参阅 LINQ 查询简介。
  • 在编译时,查询表达式根据 C# 规范规则转换成标准查询运算符方法调用。 可使用查询语法表示的任何查询都可以使用方法语法进行表示。 不过,在大多数情况下,查询语法的可读性更高,也更为简洁。 
  • 通常,我们建议在编写 LINQ 查询时尽量使用查询语法,并在必要时尽可能使用方法语法。 这两种不同的形式在语义或性能上毫无差异。 查询表达式通常比使用方法语法编写的等同表达式更具可读性。
  • 一些查询操作(如 Count 或 Max)没有等效的查询表达式子句,因此必须表示为方法调用。 可以各种方式结合使用方法语法和查询语法。 
  • 查询表达式可被编译成表达式树或委托,具体视应用查询的类型而定。 IEnumerable<T> 查询编译为委托。 IQueryable 和 IQueryable<T> 查询编译为表达式树。 
http://www.lryc.cn/news/485204.html

相关文章:

  • vue项目npm run serve出现【- Network: unavailable】(从排查到放弃)
  • R语言贝叶斯分析:INLA 、MCMC混合模型、生存分析肿瘤临床试验、间歇泉喷发时间数据应用|附数据代码...
  • C++ 关于类与对象(中篇)一篇详解!(运算符重载)
  • Scala的set
  • Linux---常用shell脚本
  • windows二进制安全零基础(二)
  • git常用命令+搭vscode使用
  • 如何在C#中处理必盈接口返回的股票数据?
  • 01 最舒适的python开发环境
  • 【PyTorch】libtorch_cpu.so: undefined symbol: iJIT_NotifyEvent
  • 快速利用c语言实现线性表(lineList)
  • 量子计算与人工智能的交汇:科技未来的新引擎
  • 51单片机使用NRF24L01进行2.4G无线通信
  • HelloMeme 上手即用教程
  • 自定义call方法和apply方法
  • typescript中为js文件提供类型声明
  • ETH挖矿显卡超频信息汇总
  • 调用 Xinference OpenAI接口时报错 Model not found in the model list, uid
  • 一文说清:C静态库与动态库的区别
  • Mysql 5.7.6以上版本怎样关闭GTID(由GTID改为基于file,position方式)
  • MATLAB常见数学运算函数
  • 设置Fusion360 - Prusa slicer -octoprint 一键打印流程
  • IO流实用案例:用字节流--输入流(Inpustream)、输出流(OutputStream)写一个拷贝图片的案例--超简单!
  • Tensorflow基本概念
  • 游戏引擎学习第九天
  • CondaError: Run ‘conda init‘ before ‘conda activate‘解决办法
  • 如何提高谷歌浏览器的稳定性
  • Spring基础之——控制反转(IOC)、依赖注入(DI)与切面编程(AOP)概念详解(适合小白,初学者必看)
  • java排序算法汇总
  • 游戏引擎中LOD渲染技术