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

Posted KonwHub知识加油站

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 10. LINQ 的三种查询语句写法相关的知识,希望对你有一定的参考价值。

前言:

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

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

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

2、编写询问语句 

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

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

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

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

from object in DataSource
    where [condition]
        select object;

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

var QuerySyntax = from obj in integerList
                              where obj > 5
                              select obj;

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

using System;
using System.Collections.Generic;
using System.Linq;

namespace Csharp
{
    class Demo
    {
        static void Main(string[] args)
        {
            // 数据源
            List<int> integerList = new List<int>()
            {
                12345678910
            };
            // LINQ 方法1:查询表达式
            var QuerySyntax = from obj in integerList
                              where obj > 5
                              select obj;

            Console.WriteLine("LINQ 方法1:查询表达式");

            // 执行LINQ查询
            foreach (var item in QuerySyntax)
            {
                Console.Write(item + " ");
            }
            Console.ReadKey();

        }
    }

}

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

输出大于 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>()
            {
                12345678910
            };
            // 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 integerList
                                where obj > 5
                                select 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>()
            {
                12345678910
            };
            // LINQ 方法3:2种语法混合使用
            var HybridMethod = (from obj in integerList
                                where obj > 5
                                select obj).Sum();

            Console.WriteLine("LINQ 方法3:2种语法混合使用");

            // 执行LINQ查询

            Console.Write($"数据之和为:{HybridMethod}");

            Console.ReadKey();

        }
    }

}

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

输出:40

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


以上是关于C# 10. LINQ 的三种查询语句写法的主要内容,如果未能解决你的问题,请参考以下文章

C#单例模式的三种写法

insert into 语句的三种写法

MYSQL语句的三种写法-分数排名例子

MYSQL语句的三种写法-分数排名例子

Go语言中for的三种写法

SQL Server中Upsert的三种方式