C# 10. LINQ 的三种查询语句写法

前言:

LINQ(语言集成查询)是 C#编程语言中的一部分。它在.NET Framework 3.5 和 C#3.0 被引入,在 System.Linq 命名空间中使用。LINQ 为我们提供了通用的查询语法,该语法使我们能够查询来自各种数据源的数据。这意味着我们可以从各种数据源(如 SQL Server 数据库,XML 文档,http://ADO.NET 数据集)以及任何其他内存中对象(如 Collections,Generics 等)查询获取或更新设置数据。

编写 LINQ 查询,我们需要三个步骤:

1、定义或引入数据源(内存中的对象,SQL,XML)

2、编写询问语句

3、在数据源中执行查询语句

下面让我们来演示不同的 LINQ 查询语句写法

1. LINQ 查询语句表达式语法

简单的查询表达式:分别有:数据初始化、条件表达式、对象选取表达式组成

from object in DataSourcewhere [condition]select object;


设置查询条件:对象大于 5

var QuerySyntax = from obj in integerListwhere obj > 5select obj;


using System;
using System.Collections.Generic;
using System.Linq;namespace Csharp
{class Demo{static void Main(string[] args){// 数据源List<int> integerList = new List<int>(){1, 2, 3, 4, 5, 6, 7, 8, 9, 10};// LINQ 方法1:查询表达式var QuerySyntax = from obj in integerListwhere obj > 5select obj;Console.WriteLine("LINQ 方法1:查询表达式");// 执行LINQ查询foreach (var item in QuerySyntax){Console.Write(item + " ");}Console.ReadKey();}}}


输出大于 5 的对象:6 7 8 9 10


2. LINQ 对象方法表达式语法

简单的对象表达式语法,即将数据源对象扩展查询方法

DataSource.ConditionMethod([Condition]).SelectMethod();


扩展数据源对象 Where 查询方法

var MethodSyntax = integerList.Where(obj => obj > 5).ToList();


using System;
using System.Collections.Generic;
using System.Linq;namespace Csharp
{class Demo{static void Main(string[] args){// 数据源List<int> integerList = new List<int>(){1, 2, 3, 4, 5, 6, 7, 8, 9, 10};// LINQ 方法2:对象表达式var MethodSyntax = integerList.Where(obj => obj > 5).ToList();Console.WriteLine("LINQ 方法2:对象表达式");// 执行LINQ查询foreach (var item in MethodSyntax){Console.Write(item + " ");}Console.ReadKey();}}}


输出大于 5 的对象:6 7 8 9 10


3. LINQ 2 种语法混合使用

两种查询语法也可以混合使用

先使用查询语句表达式语法将数据筛选,然后通过对象方法表达式,返回数据之和

var MethodSyntax = (from obj in integerListwhere obj > 5select obj).Sum();


using System;
using System.Collections.Generic;
using System.Linq;namespace Csharp
{class Demo{static void Main(string[] args){// 数据源List<int> integerList = new List<int>(){1, 2, 3, 4, 5, 6, 7, 8, 9, 10};// LINQ 方法3:2种语法混合使用var HybridMethod = (from obj in integerListwhere obj > 5select obj).Sum();Console.WriteLine("LINQ 方法3:2种语法混合使用");// 执行LINQ查询Console.Write($"数据之和为:{HybridMethod}");Console.ReadKey();}}}


先筛选大于 5 的对象:6 7 8 9 10,再对这些对象求和

输出:40

今天我们给大家分享了,C#语言中LINQ查询的3种语法,大家都学会了吗?

欢迎关注公众号:KnowHub 知识加油站!

linq拼接where语句_C# 10. LINQ 的三种查询语句写法相关推荐

  1. python选择语句是什么语句_Python语言中的三种选择语句

    本文将详细介绍Python语言中的三种选择语句:if语句,if/else语句和if/elif/else语句.对于每种语句,我们都提供了相应的流程图.与此同时,我们给出许多简单的示例程序,以帮助读者加深 ...

  2. datatable中使用linq的条件或_C# 10. LINQ 的三种查询语句写法

    前言: LINQ(语言集成查询)是 C#编程语言中的一部分.它在.NET Framework 3.5 和 C#3.0 被引入,在 System.Linq 命名空间中使用.LINQ 为我们提供了通用的查 ...

  3. 《C语言及程序设计》实践项目——三种循环语句

    返回:贺老师课程教学链接 [项目1:利用循环求和] 求1000以内所有偶数的和 要求:请编出3个程序来,分别用三种循环语句完成,注意体会各种循环语句的执行过程及语法特点. [参考解答] [项目2:求阶 ...

  4. java循环do while_Java中for、while、do while三种循环语句的区别介绍

    这篇文章主要介绍了Java中for.while.do while三种循环语句的区别介绍的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下 本文通过实例讲解给大家介绍Java中for.whil ...

  5. JAVA中几种循环结构的表示_本文通过实例讲解给大家介绍Java中for、while、do while三种循环语句的区别,具体详情如下所示:第一种:for循环 循环结构for语句的格式...

    本文通过实例讲解给大家介绍Java中for.while.do while三种循环语句的区别,具体详情如下所示: 第一种:for循环 循环结构for语句的格式: for(初始化表达式;条件表达式;循环后 ...

  6. 简单介绍Lua中三种循环语句的使用

    今天小编就为大家分享一篇关于Lua中三种循环语句的使用讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧 Lua的循环和C语言的循环的语法其实差不多,所以, ...

  7. c语言三种循环语句,C语言三种循环语句的功能等价性

    C语言程序中的.bile,dowhile,for三种循环语句在实现不同形式的循环功能上各具特色及优点,从而使C语言程序的循环功能准确简洁地实现了实际问题中不同形式及过程的循环要求,本文从一般逻辑关系上 ...

  8. php循环语句w,php语言的几种循环语句的使用格式,及其区别

    while 只要指定的条件成立,则循环执行代码块 do...while 首先执行一次代码块,然后在指定的条件成立时重复这个循环 for 循环执行代码块指定的次数 foreach 根据数组中每个元素来循 ...

  9. 1. 变量提升 2. 条件语句 3. 循环语句 弹出框的三种形式 If条件的种类...

    1.     变量提升 变量提升是浏览器的一个功能,在运行js代码之前,浏览器会给js一个全局作用域叫window ,window分两个模块,一个叫内存模块,一个叫运行模块,内存模块找到当前作用域下的 ...

最新文章

  1. 新手参加java培训都学什么
  2. 有人顶贴,是对你的肯定
  3. C++STL的deque容器
  4. Oracle 计算两个日期间隔的天数、月数和年数
  5. BZOJ 1137 半平面交
  6. std::string的resize()与reserve()的区别
  7. 微软开源 TensorFlow-DirectML,为 WSL2 提供 GPU 支持
  8. 如何在python导入包_python如何引入包
  9. nginx工作原理与配置
  10. CS游戏控制台命令大全(来自网络)
  11. python地震数据处理_Python爬虫之实时地震数据
  12. roseha-mirror oracle数据库同步 可靠性,RoseHA集群:RHEL+RoseMirror+Oracle【1】
  13. 基于R语言的DynNom包绘制动态列线图
  14. PS教程:快速蒙版抠图
  15. php rrd 做统计数据,Ganlia采样、统计及RRD记录周期(频次、间隔)的配置和更改...
  16. 安卓进阶之android系统架构
  17. 既风骚又哲理的10句话,不服不行
  18. 多线程核心8-3:线程三大安全问题之发布与逸出
  19. 蓝桥杯: 调手表【BFS】【Python】
  20. 第五十九章 CSP的常见问题 - 会话和许可证,为什么我要经常登录?

热门文章

  1. 程序员面试金典——11.2变位词排序
  2. 洛谷 P1451【细胞】
  3. matlab无法打开.m文件查看
  4. docker学习笔记-6.容器关联,容器网络
  5. 软件定义网络(SDN)研究进展
  6. 二分图 洛谷P2055 [ZJOI2009]假期的宿舍
  7. 实现一门新的语言--背景(1)
  8. 需求文档中容易出的错误
  9. notepad++下的字体设置
  10. Javascript闭包简单理解