二、LINQ

文章目录


LINQ(Language Integrated Query,语言集成查询),可为C#语法提供强大的查询功能。

一、LINQ概述与查询语法

LINQ提供了一种跨数据源和数据格式 的统一模型,实现查询。它使用C#等语言以查询数据库相同的方式查询内存数据。

LINQ的编写从from关键字开始,结合使用where、select等关键字,实现各种条件的查询。

LINQ主要关键字:

关键字 说明
from 指定范围变量和数据源
where 根据bool表达式从数据源中筛选数据
select 指定查询结果中的元素所具有的类型或表现形式
group 对查询结果按照键/值执行分组
into 提供一个标识符,它可以充当对join、group或select字句结果的引用
orderby 对查询出的元素执行排序(ascending/descending)
join 按照两个指定匹配条件对等连接两个数据源
let 产生一个用于存储子表达式查询结果的范围变量

完整的LINQ语句的写法可以定义为以下结构:

举例1:
代码截图:
二、LINQ
效果图:
二、LINQ
举例2:
首先定义两个类,分别是:Product和Employees
二、LINQ
二、LINQ
二、LINQ
主程序中的代码:
二、LINQ

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            List<Product> products = new List<Product>() {
                    new Product{Name="iphone11",CategoryID="手机"},
                    new Product{Name="香蕉",CategoryID="水果"},
                    new Product{Name="辣条",CategoryID="零食"},
                    new Product{Name="葡萄",CategoryID="水果"}
            };
            var result = from p in products
                         select p;
            foreach (var item in result)
            {
                Console.WriteLine($"商品名称:{item.Name},商品类别:{item.CategoryID}");
            }

        }
    }
}

最终效果图:
二、LINQ
如果我们只需要查询水果,其他代码不变,只需要改如下代码即可
二、LINQ
效果图:
二、LINQ
如果我们需要根据产品的类别进行分组查询:
二、LINQ
效果图:
二、LINQ
如果想查询每个类别所对应的数量:
二、LINQ
效果图:
二、LINQ
之前我们定义了一个Employees类,一直没有用到,所以接下来举个类似的例子:
二、LINQ

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            List<Employees> employees = new List<Employees>()
            {
                new Employees{LastName="张三",TitleOfCourtesy="助理设计师"},
                new Employees{LastName="李四",TitleOfCourtesy="软件设计师"},
                new Employees{LastName="赵六",TitleOfCourtesy="助理设计师"},
                new Employees{LastName="王五",TitleOfCourtesy="软件设计师"},
                new Employees{LastName="小明",TitleOfCourtesy="系统分析师"}
            };
            var result = from p in employees
                         select new { LastName = p.LastName, TitleOfCourtesy = p.TitleOfCourtesy }
                         into EmployeesList
                         orderby EmployeesList.TitleOfCourtesy ascending
                         select EmployeesList;
            //ascending 升序排序
            //descending 降序排序
            foreach (var item in result)
            {
                Console.WriteLine("员工姓名:{0},员工职务:{1}",item.LastName,item.TitleOfCourtesy);
            }
        }
    }
}

效果图:
二、LINQ

二、LINQ方法语法基础

三、LINQ聚合操作与元素操作

四、数据类型转换

上一篇:攻防世界 WEB cookie


下一篇:prometheus cAdvisor 监控docker CPU利用率 教程Prometheus监控docker容器