二、LINQ


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

一、LINQ概述与查询语法

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

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

LINQ主要关键字:

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

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

举例1:
代码截图:
在这里插入图片描述
效果图:
在这里插入图片描述
举例2:
首先定义两个类,分别是:Product和Employees
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
主程序中的代码:
在这里插入图片描述

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}");
            }

        }
    }
}

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

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聚合操作与元素操作

四、数据类型转换

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值