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

C#—LINQ详解及汇总

LINQ详解及汇总

LINQ(Language Integrated Query)是微软的一项技术,允许开发者以一种简洁的方式查询和操作数据,支持多种数据源,包括对象、数据库、XML和数据集。LINQ定义了约40个查询操作符,如select、from、in、where以及order by等,这些操作符可以编写查询语句,处理各种类型的数据‌。

LINQ可以用最少的代码对数据源执行复杂的筛选、排序和分组操作。使用相同的基本查询表达式模式来查询和转换 SQL数据库、ADO.NET数据集、XML文档和流以及,NET集合中的数据。

查询表达式必须以from 子句开头,并且必须以select或group 子句结尾。在第一个 from 子
句和最后一个select或group 子句之间,查询表达式可以包含一个或多个下列可选子句。LINQ查询代码中关键字必须小写。

LINQ的不同实现形式及其现状:
  1. LINQ to Objects‌:用于操作内存中的对象集合。
  2. ‌LINQ to SQL‌:用于查询数据库。然而,LINQ to SQL已经停止维护,被Entity Framework(EF)取代‌。
  3. ‌LINQ to Datasets‌:用于操作数据集。
  4. ‌LINQ to Entities‌:用于查询实体框架中的数据。
  5. ‌LINQ to XML/XSD‌:用于操作XML数据。
  6. ‌LINQ to Data Source‌:用于查询数据源。

基本步骤

  • 创建数据模型:使用 LINQ to SQL 工具自动生成或手动创建与数据库表对应的 C# 类。
  • 执行查询:使用 LINQ 查询语法来检索、更新、插入或删除数据。
  • 提交更改:将对数据所做的更改同步回数据库。

LINQ数据源

  • 应用程序始终将源数据视为一个lEnumerable<T>或IQueryable<T>集合。在 LINQtoXML中,源数据显示为一个IEnumerable<XElement>。
  • 在 LINQto DataSet中,它是一个IEnumerable<DataRow>。在 LINQ toSQL中,它是定义用来表示SQL表中数据的任何自定义对象的lEnumerable 或lQueryable。
  • (‌IEnumerable<T> 或 IQueryable<T>‌:这是大多数LINQ查询的返回值类型。它们表示一个序列,可以包含零个、一个或多个元素。)

LINQ组成部分(大概):

  • IEnumerable<T> 枚举器  (详解: C#—内建接口: IEnumerable与IEnumerator接口详解-CSDN博客)
  • 扩展方法 :  (详解:  C#—扩展方法-CSDN博客)
  • IQueryable<T> (它实现了IEnumerable) (详解: C#—内建接口: IQueryable接口详解-CSDN博客)
  • lambda表达式  :(详解: C#之lambda表达式_c# array.exists-CSDN博客)

LINQ语法:

一、select 查询

// 扩展方法 Select
var query = studentsList.Select(s => new { id = s.Id, age = s.Age > 20 ? 20 : 0 });  // new { id = s.Id, age20 } // 匿名实例
// 表达式用法 Select
var query2 = from s in studentsList select new { id = s.Id, age = s.Age > 20 ? 20 : 0 };

二、where筛选条件

// 扩展方法形式 Where
List<Students> list2 = studentsList.Where(x=>x.Age<20).ToList();
// 表达式形式 Where
List<Students> val = (from s2 in list2 where s2.Id == 2 || s2.Id < 3 select s2).ToList();

三、let临时变量

/// let 创建变量
int[] ints = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
var query11 = from s in intslet n = s % 2where n == 0select s;

四、Orderby排序

// 排序
var query7 = studentsList.OrderBy(s => s.Name); // OrderBy 升序
var query8 = studentsList.OrderByDescending(s => s.Id); // OrderByDescending 倒序
var query77 = from s in studentsList orderby s.Id ascending select s; // ascending升序
var query777 = from s in studentsList orderby s.Id descending select s; // descending倒序

五、分页查询Skip、Take、Top

  • Skip:跳过前几条数据
  • Take:获取指定数量元素
  • Top:截取前几条数据
/* 表达式 */
List<string> nameList = (from u in list select u.name).Skip(3).Take(3).ToList();
/* 扩展方法 */
List<string> nameList = list.Skip(3).Take(3).Select(x => x.name).ToList();

六、分组查询 Group By

  • 1、Group字句把select的对象根据一些标准进行分组。
  • 2、从查询表达式返回的对象是从查询中枚举分组结果的可枚举类型。
  • 3、每一个分组由一个叫做键的字段区分。
  • 4、每一个分组本身是可枚举类型并可以枚举它的项。
/* 扩展方法 */
IEnumerable<IGrouping<string, User>> UserGroupByOccupation = list.GroupBy(s => s.occupation);
/* 表达式 */
IEnumerable<IGrouping<string, User>> UserGroupByOccupation= from u in listgroup u by u.occupation into n

结果:

/* 遍历 输出 */
foreach(IGrouping<string, User> u in UserGroupByOccupation)
{Console.WriteLine(u.Key);foreach (User user in u){Console.WriteLine(PrintUserObject(user));}
}/* 输出结果 */
Teacher
{id = 1, name = Zhang Long, age = 38, gender = True, occupation = Teacher}
{id = 3, name = Zhang Shuai, age = 38, gender = False, occupation = Teacher}
Student
{id = 2, name = Zhang Jin, age = 18, gender = False, occupation = Student}
{id = 9, name = Hu Ziming, age = 21, gender = True, occupation = Student}
{id = 10, name = Hu Jin, age = 21, gender = False, occupation = Student}
Doctor
{id = 4, name = Liu Guangzhi, age = 38, gender = False, occupation = Doctor}
{id = 5, name = Liu Ziming, age = 38, gender = True, occupation = Doctor}
{id = 6, name = Liu Shuai, age = 29, gender = False, occupation = Doctor}
Builder
{id = 7, name = Liu Jin, age = 21, gender = True, occupation = Builder}
{id = 8, name = Jiang Long, age = 38, gender = True, occupation = Builder}

七、多表查询Join

SQL中常见的连接查询有:

  • left join : 左连接,返回左表中所有的记录以及右表中连接字段相等的记录。
  • right join : 右连接,返回右表中所有的记录以及左表中连接字段相等的记录。
  • inner join : 内连接,又叫等值连接,只返回两个表中连接字段相等的行。
  • full join : 外连接,返回两个表中的行:left join + right join。
  • cross join : 结果是笛卡尔积,就是第一个表的行数乘以第二个表的行数。

Linq只有Join这个函数。

  • Linq中的Join连接查询是通过调换关联表和被关联表的顺序来转换左右连接的方向,通过调整Where和On等条件筛选函数的位置,来改变逻辑,实现更复杂的内连接全连接等功能。
// Join
// 表达式  (equals 同等)
var query3 = from s in studentsList join c in classList on s.ClassId equals c.Id select new {Id = s.Id,ClassId = s.ClassId,Name = s.Name,Age = s.Age,ClassName = c.ClassName };
// 扩展方法
var query4 = studentsList.Join(classList,s=>s.ClassId,c=>c.Id,(s,c)=>new { Id = s.Id, ClassId = s.ClassId, Name = s.Name, Age = s.Age, ClassName = c.ClassName });

八、聚合函数Count、Average、Max、Min、Sum

  • 聚合函数是用于对查询结果进行汇总和计算的特殊函数。它们被用于计算一组行的总和、平均值、最大值、最小值等。在此文章中,将介绍SQL Server中一些常见的聚合函数及其用法。

(1).Count计数

/* 表达式 */
int count = (from u in list where u.occupation == "Teacher" where !u.gender where u.name.StartsWith("Zhang") select u).Count();
/* 扩展方法 */
int count = list.Count(u => u.occupation == "Teacher" && !u.gender && u.name.StartsWith("Zhang"));

(2).Average平均值

/* 表达式 */
double averageNum = (from u in list where u.occupation == "Doctor" where u.age<40 where u.name.StartsWith("Liu") select u.age).Average();
/* 扩展方法 */
double averageNum = list.Where(u => u.occupation == "Doctor" && u.age < 40 && u.name.StartsWith("Liu")).Select(u => u.age).Average();

(3).Max最大值、Min最小值、Sum和

这里仅需参考LINQ求平均值的例子,求最大/小值或者总和时,只需要把C#语句末尾的.Average()方法替换成.Max()/.Min()/.Sum()即可。

九、模糊查询

  • 在C#中,使用LINQ进行模糊查询通常涉及到Where子句中对字符串的比较,可以使用string字符串中的方法来查找包含指定字符串的元素,或者使用正则表达式来实现更复杂的模糊查询。
// 查询名字中带有1的学生
var query9 = studentsList.Where(s => s.Name.Contains("1"));

十、子查询

var ordersWithProduct3 = orders.Where(o => o.OrderDetails.Any(d => d.ProductID == 3));

十一、投影

投影的过程就是把取得的结果进行处理,可以把结果集合内的对象只取其中一个或多个元素组成一个新的集合,生成一个原对象、基本类型、元组或匿名对象的新集合。

/* 表达式 */
List<User> userList = (from u in list where u.occupation == "Doctor" select u).ToList();
/* 扩展方法 */
List<User> userList = list.Where(p => p.occupation == "Doctor").ToList();

十二、集合的增删改查

/* 新增一个任意属性的用户到集合 */
/* C#版本1 */
list.Add(new User() {id = 11,name = "Liu Mingxiu",age = 22,gender = false,occupation = "Doctor"
});/* C#版本2(支持一次添加多个) */
IEnumerable<User> userAddList = new List<User>().Append(userAdd);
list.AddRange(userAddList);

/* 推荐使用RemoveAll方法批量删除 */
/* C#版本1 */
list.RemoveAll(item => item.occupation == "Doctor");/* 也可以使用Remove方法单个删除 */
/* C#版本2 */
List<User> maps = list.Where(item => item.occupation == "Doctor").ToList();
foreach (User userDelete in maps){list.Remove(userDelete);
}/* C#版本3 */
List<User> maps = (from u in list where u.occupation == "Doctor" select u).ToList();
foreach (User userDelete in maps){list.Remove(userDelete);
}

/* C#版本1 使用ForEach方法 */
salaryList.Where(item => item.occupation == "Doctor").ToList().ForEach(u => { u.salary = 10000; u.active = true; });/* C#版本2 使用All方法(需要返回true) */
salaryList.Where(item => item.occupation == "Doctor").ToList().All( u => { u.salary = 10000; u.active = true; return true; });


LINQ查询参考 :  C#进阶-LINQ表达式总结_c# linq-CSDN博客


相关文章:

C#—LINQ详解及汇总

LINQ详解及汇总 LINQ&#xff08;Language Integrated Query&#xff09;是微软的一项技术&#xff0c;允许开发者以一种简洁的方式查询和操作数据&#xff0c;支持多种数据源&#xff0c;包括对象、数据库、XML和数据集。LINQ定义了约40个查询操作符&#xff0c;如select、fr…...

WebGAL 项目下载及安装教程

WebGAL 项目下载及安装教程 WebGAL A brand new web Visual Novel engine | 全新的网页端视觉小说引擎 [这里是图片001] 项目地址: https://gitcode.com/gh_mirrors/web/WebGAL 1、项目介绍 WebGAL 是一个全新的网页端视觉小说引擎&#xff0c;旨在提供美观、功能强大且易于…...

虚幻引擎游戏开发系列专题-官方编码标准或规约

遵守既定标准和最佳实践来编写可维护的代码。在虚幻游戏引擎中,存在着一些既定的编码标准和约定 ,养成良好的编码规范是写好一份优雅代码的第一步,并且在虚幻官方也强调了,某些编码标准的遵循是强制性的。 编码规约对程序员来说意味着什么 在软件开发中,软件生命周期的80%的成…...

n阶Legendre多项式正交性的证明

前言 在《n次Legendre(勒让德)多项式在区间(-1, 1)上根的分布及证明》这篇文章中&#xff0c;我们阐述了Legendre多项式在 [ − 1 , 1 ] [-1,1] [−1,1]上的根分布情况并给出了证明。本文将证明Legendre多项式在 [ − 1 , 1 ] [-1,1] [−1,1]上的正交性质。 正交多项式的定义…...

初学stm32 --- PWM输出

目录 STM32 PWM工作过程​编辑 STM32 PWM工作过程&#xff08;通道1为例&#xff09; PWM模式1 & PWM模式2 向上计数配置说明​编辑 STM32 定时器3输出通道引脚 自动重载的预装载寄存器 ​编辑 PWM输出相关库函数 输出比较初始化函数&#xff1a; 设置比较值函数&a…...

Git:查看分支、创建分支、合并分支

一、查看分支 查看的git命令如下&#xff1a; git branch # 列出本地已经存在的分支&#xff0c;并且当前分支会用*标记 git branch -r # 查看远程版本库的分支列表 git branch -a # 查看所有分支列表&#xff08;包括本地和远程&#xff0c;remotes/开头的表示远程分支&…...

爬虫学习案例8

爬取京东评论信息 采用DrissionPage自动化工具采集&#xff0c;感觉比Selenium工具好&#xff0c;真香。 安装第三方库 pip install DrissionPage pip install pandas pip install pyecharts pip install jieba pip install wordcloud1.安装DrissionPage库 DrissionPage安装…...

git 提交代码无法连接:Failed to connect to github.com port 443 after 21060 ms

项目场景&#xff1a; 在能够访问github仓库的情况下&#xff0c;生成本地代码并提交到github上时会遇到提交不成功的问题&#xff0c;如下&#xff1a; fatal: unable to access ‘https://github.com/Pitt-ding/opc_comm.git/’: Failed to connect to github.com port 443 …...

麒麟系统修改配置镜像源地址并安装openGL

1.编辑文件/etc/apt/sources.list 进入目录 cd /etc/apt/ 编辑文件&#xff08;需要root权限&#xff09; sudo vi sources.list 将镜像地址改为你指定的镜像地址 #deb http://archive.kylinos.cn/kylin/KYLIN-ALL 10.1 main restricted universe mul tiverse #deb http:…...

如何使用Navigator实现导航功能

文章目录 1 概念介绍2 使用方法3 示例代码我们在上一章回中介绍了Widget的State,本章回中将介绍Route和Navigator,闲话休提,让我们一起Talk Flutter吧。 1 概念介绍 到目前为止,我们介绍的内容都在一个页面中,本章回中将介绍中在Flutter中如何进行页面切换,这里说的页面切…...

MyBatis-Plus分页拦截器,源码的重构(重构total总数的计算逻辑)

1.1创建ThreadLocal工具类&#xff08;作为业务逻辑结果存放类&#xff09; package org.springblade.sample.utils;public class QueryContext {private static final ThreadLocal<Long> totalInThreadLocal new ThreadLocal<>();public static void setTotalIn…...

Jmeter对图片验证码的处理【超详细】

Jmeter对图片验证码的处理 在web端的登录接口经常会有图片验证码的输入&#xff0c;而且每次登录时图片验证码都是随机的&#xff1b;当通过jmeter做接口登录的时候要对图片验证码进行识别出图片中的字段&#xff0c;然后再登录接口中使用&#xff1b; 通过jmeter对图片验证码…...

匈牙利算法

匈牙利算法 1 概念2 依据3 目的4步骤5 案例6 测试 1 概念 匈牙利算法基于代价矩阵找到最小代价的分配方法&#xff0c;是解决分配问题中最优匹配(最小代价)的算法。 2 依据 代价矩阵的行或列同时加或减一个数&#xff0c;得到新的代价矩阵的最优匹配与原代价矩阵相同。 3 目…...

nginx学习总结(不包含安装过程)

1. nginx常见配置 http服务上支持【若干虚拟主机】。每个虚拟主机对应一个server配置项&#xff0c;配置项里面包含该虚拟主机相关的配置。 server{listen 80 default;server_name www.yonqin.com;index index.html index.htm index.php;root /data/www;location ~ .*\.(gif|…...

Android10 rk3399 以太网接入流程分析

Netd守护进程服务 Netd模块是Android中专门负责网络管理和控制的后台守护进程开发板路径./etc/init/netd.rc service netd /system/bin/netdclass mainsocket dnsproxyd stream 0660 root inetsocket mdns stream 0660 root systemsocket fwmarkd stream 0660 root inetonres…...

HTML与数据抓取:GET与POST方法详解

讲GET和POST就不能只讲GET和POST 你要讲HTTP请求的基本概念&#xff1a; HTTP&#xff08;HyperText Transfer Protocol&#xff0c;超文本传输协议&#xff09;是互联网上应用最为广泛的一种网络协议&#xff0c;主要用于Web浏览器与Web服务器之间的数据通信。HTTP是一个基于…...

DG常用启动方法与异常查找

--查看主库的状态&#xff1a; select a.inst_id,a.db_unique_name,a.database_role, a.protection_level,a.protection_mode,a.open_mode,a.log_mode,a.switchover_status, b.host_name,b.thread# from gv$database a left join gv$instance b on a.inst_idb.inst_id order by…...

C++ OpenGL学习笔记(4、绘制贴图纹理)

相关链接&#xff1a; C OpenGL学习笔记&#xff08;1、Hello World空窗口程序&#xff09; C OpenGL学习笔记&#xff08;2、绘制橙色三角形绘制、绿色随时间变化的三角形绘制&#xff09; C OpenGL学习笔记&#xff08;3、绘制彩色三角形、绘制彩色矩形&#xff09; 通过前面…...

以二进制形式创建gitea仓库

1、官方文档&#xff1a; 数据库准备 | Gitea Documentation 使用二进制文件安装 | Gitea Documentation 2、具体操作 1&#xff09;创建gitea数据库 2&#xff09;检查是否安装 Git。要求 Git 版本 > 2.0。 如需升级git请参考以下链接&#xff1a;linux升级git版本-C…...

数据库系统原理:数据库安全性与权限控制

2.1vue技术 Vue (读音 /vjuː/&#xff0c;类似于 view) 是一套用于构建用户界面的渐进式JavaScript框架。 [5] 与其它大型框架不同的是&#xff0c;Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层&#xff0c;不仅易于上手&#xff0c;还便于与第三方库或既有项…...

bugkctf 渗透测试1超详细版

bugkctf 渗透测试1 下发环境进行访问 场景1 通过查看网页源代码成功找到1个flag 得到flag和提示 <!--flag{950d83a16ad47127859d414009432171} PS&#xff1a;下个flag网站管理员才能看到哦-->场景2 根据提示需要管理员权限&#xff0c;进行登录,直接登录需要邮箱和…...

window安装TradingView

目录 下载安装包 修改文件后缀&#xff0c;解压 将K线换成国内涨红跌绿样式 下载安装包 https://www.tradingview.com/desktop/ 下载完成后是.msix格式文件 &#xff08;我在win10和win11的系统中尝试运行msix都没有成功&#xff0c;所以放弃直接双击运行msix&#xff…...

网络下载ts流媒体

网络下载ts流媒体 查看下载排序合并 很多视频网站&#xff0c;尤其是微信小程序中的长视频无法获取到准确视频地址&#xff0c;只能抓取到.ts片段地址&#xff0c;下载后发现基本都是5~8秒时长。 例如&#xff1a; 我们需要将以上地址片段全部下载后排序后再合成新的长视频。 …...

log4j2漏洞复现(CVE-2021-44228)

靶场环境 步骤一&#xff1a;设置出战规则 步骤二&#xff1a;开启靶场 cd vulhub cd log4j cd CVE-2021-44228 docker-compose up -d docker ps 访问端口 靶机开启 步骤三&#xff1a;外带注入 获得dnslog 靶机访问dnslog 得到dnslog的二级域名信息 步骤四&#xff1a;构造…...

应用(APP)部署容器化演进之路

应用&#xff08;Application&#xff09;部署容器化演进之路 一、应用程序部署痛点 1.1 应用程序部署流程 举例&#xff1a;部署一个JAVA编程语言开发的Web应用&#xff0c;以War包放入Tomcat方式部署。 部署过程如下&#xff1a; 服务器配置运行环境:JAVA代码运行环境&am…...

Pytorch | 从零构建EfficientNet对CIFAR10进行分类

Pytorch | 从零构建EfficientNet对CIFAR10进行分类 CIFAR10数据集EfficientNet设计理念网络结构性能特点应用领域发展和改进 EfficientNet结构代码详解结构代码代码详解MBConv 类初始化方法前向传播 forward 方法 EfficientNet 类初始化方法前向传播 forward 方法 训练过程和测…...

Saprk和Flink的区别

1 、设计理念方面 Spark 的技术理念是使用微批来模拟流的计算&#xff0c;基于 Micro-batch &#xff0c;数据流以时间为单位被切分为一个个 批次&#xff0c;通过分布式数据集RDD 进行批量处理&#xff0c;是一种伪实时。 Flink 是基于事件驱动的&#xff0c;是面向流的处理…...

Spring Boot 动态定时任务管理系统(轻量级实现)

Spring Boot项目中&#xff0c;实现动态增删和启停定时任务的功能对于许多应用场景来说至关重要。虽然Quartz框架是一个广泛使用的解决方案&#xff0c;但其复杂性和重量级特性可能使得项目变得臃肿和难以维护。为了解决这个问题&#xff0c;本项目旨在实现一个轻量级的定时任务…...

开发微信小程序的过程与心得

起因 作为家长&#xff0c;我近期参与了学校的护学岗工作。在这个过程中&#xff0c;我发现需要使用水印相机来记录护学活动&#xff0c;但市面上大多数水印相机应用都要求开通会员才能使用完整功能。作为一名程序员&#xff0c;我决定利用自己的技术背景&#xff0c;开发一个…...

项目代码第6讲:UpdownController.cs;理解 工艺/工序 流程、机台信息;前端的“历史 警报/工艺 记录”

一、UpdownController.cs 1、前端传入 当用户在下图的“记录查询”中的 两个界面选项 中,点击“导出”功能时,向后端发起请求,请求服务器下载文件的权限 【权限是在Program.cs中检测的,这个控制器里只需要进行“谁在哪个接口下载了文件”的日志记录】 【导出:是用户把…...

Apache RocketMQ 5.1.3安装部署文档

官方文档不好使&#xff0c;可以说是一坨… 关键词&#xff1a;Apache RocketMQ 5.0 JDK 17 废话少说&#xff0c;开整。 1.版本 官网地址&#xff0c;版本如下。 https://rocketmq.apache.org/download2.配置文件 2.1namesrv端口 在ROCKETMQ_HOME/conf下 新增namesrv.pro…...

uni-app开发收货地址管理

目录 一:功能描述 二:功能实现 一:功能描述 收货地址在个人中心的我的地址里面,点击我的地址可以查看我的收货地址列表,可以新增收货地址,点击特定收货地址可以编辑和删除该地址信息。 二:功能实现 1:收货地址列表 <view v-for="(item, index) in data_lis…...

BOE(京东方)“向新2025”年终媒体智享会落地成都 持续创新引领产业步入高价值增长新纪元

12月20日,BOE(京东方)“向新 2025”年终媒体智享会的脚步从上海延伸至成都。川渝之地,作为 BOE(京东方)产业生态战略布局中的关键一子,此刻再度成为行业瞩目的焦点。本次活动全面回溯了BOE(京东方)在2024年多个关键领域斩获的斐然佳绩,深入剖析了六大维度构建的“向新”发展格局…...

JavaWeb - ⭐ AOP 面相切面编程原理及用户校验功能实战

一、概述 定义&#xff1a; AOP (Aspect Oriented Programming 面向切面编程) &#xff0c;一种面向方法编程的思想 功能&#xff1a;管理 bean 对象的过程中&#xff0c;通过底层的动态代理机制对特定方法进行功能的增强或改变 实现方式&#xff1a;动态代理技术&#xff0c…...

鸿道Intewell工业操作系统,三大关键技术,领跑行业前沿

鸿道工业操作系统&#xff0c;是软件定义控制的工业实时操作系统&#xff0c;具备三大关键技术&#xff1a; 1、确定性计算与高实时响应(微秒级、关键指标) 提供确定性的计算与高实时的系统环境&#xff0c;保障工业生产运作的灵活高效。 2、微内核、并发处理(微内核的强大…...

java 对ElasticSearch数据库操作封装工具类(对你是否适用嘞)

在 Java 中封装 ElasticSearch&#xff08;ES&#xff09;数据库操作&#xff08;ES版本之间变动挺大的&#xff0c;别轻易换版本&#xff09;&#xff0c;可以使得与 ES 的交互更加简洁和易于维护。通过封装常见的操作&#xff0c;如插入文档、查询、更新和删除等&#xff0c;…...

HarmonyOS NEXT 技术实践-基于基础视觉服务实现骨骼点识别

本示例展示了如何在HarmonyOS Next中实现基于基础视觉服务的骨骼点识别功能。骨骼点识别是计算机视觉中的一项重要技术&#xff0c;广泛应用于运动分析、健身监控和增强现实等领域。通过使用HarmonyOS Next提供的视觉API&#xff0c;开发者能够轻松地对人物图像进行骨骼点检测&…...

广州大学计算机组成原理课程设计

一.课设性质&#xff0c;目的&#xff0c;任务 《计算机组成与系统结构课程设计》是计算机学院各专业集中实践性环节之一&#xff0c;是学习完《计算机组成与系统结构》课程后进行的一次全面的综合练习。其目的是综合运用所学计算机原理知识&#xff0c;设计并实现一台模型计算…...

【漏洞复现】CVE-2021-45788 SQL Injection

漏洞信息 NVD - cve-2021-45788 Time-based SQL Injection vulnerabilities were found in Metersphere v1.15.4 via the “orders” parameter. Authenticated users can control the parameters in the “order by” statement, which causing SQL injection. API: /test…...

【Java基础面试题035】什么是Java泛型的上下界限定符?

回答重点 Java泛型的上下界限定符用于对泛型类型参数进行范围限制&#xff0c;主要有上界限定符和下届限定符。 1&#xff09;上界限定符 (? extends T)&#xff1a; 定义&#xff1a;通配符?的类型必须是T或者T的子类&#xff0c;保证集合元素一定是T或者T的子类作用&…...

无需GPU也能跑的修图神器(祛痣、去水印、去路人)

背景 在这个视觉内容创作盛行的时代&#xff0c;大家对图片质量要求愈发严苛。无论是日常分享的自拍照想祛痣变得完美无瑕&#xff0c;还是摄影作品需去水印彰显原创&#xff0c;亦或是旅游打卡照要去路人还原美景。如今&#xff0c;一款能在 CPU 上流畅运行的修改神器应运而生…...

R语言数据分析案例47-上海译文出版社旗舰店图书分析和可视化

一、研究背景 随着数字化时代的发展&#xff0c;图书出版行业面临着日益激烈的市场竞争。上海译文出版社作为一家知名的出版机构&#xff0c;其旗舰店的图书销售数据蕴含着丰富的信息。对最新入库图书进行深入分析和可视化呈现&#xff0c;有助于出版社更好地了解市场动态、读…...

牵手红娘:牵手App红娘助力“牵手”,脱单精准更便捷

随着互联网的普及&#xff0c;现代青年的社交圈层加速扩大&#xff0c;他们的恋爱观也正经历着前所未有的转变。在繁忙的工作之余&#xff0c;人们希望能够找到一种既高效又真诚的交友方式。于是&#xff0c;线上交友平台成为了他们寻找爱情的新选择。让不同文化背景、不同工作…...

什么是根服务器?有什么作用?

你知道什么是根服务器吗?在互联网的庞大架构中&#xff0c;根服务器很多人对它的了解并不深入。那么&#xff0c;根服务器到底是什么&#xff0c;它有什么作用呢? 什么是根服务器? 根服务器是互联网域名系统(DNS)的一部分&#xff0c;负责管理和维护最顶层的域名信息。简单…...

Tavily人工智能代理和检索增强生成应用设计的搜索引擎

Tavily人工智能代理和检索增强生成应用设计的搜索引擎 Tavily是一款专为人工智能代理和检索增强生成应用设计的搜索引擎.以下是其使用示例: 安装与配置 需先安装相应的包,并获取API密钥来设置环境变量. %pip install -qU "langchain-community>=0.2.11" tavi…...

web的五个Observer API

IntersectionObserver&#xff1a; 一个元素从不可见到可见&#xff0c;从可见到不可见 ??IntersectionObserver是一种浏览器提供的 JavaScript API&#xff0c;用于监测元素与视窗的交叉状态。它可以告诉开发者一个元素是否进入或离开视窗&#xff0c;以及两者的交叉区域的…...

CSS学习记录19

CSS文本效果 CSS text-overflow 属性规定应如何向用户呈现未显示的溢出的内容。 //裁剪 text-overflow: clip; //隐藏 text-overflow: ellipsis; CSS字换行&#xff08;Word Wrapping&#xff09; CSS word-wrap 属性使长文字能够被折断并换到下一行。 如果一个单词太长而…...

使用Amazon Bedrock的无服务器的智能工作流

使用Amazon Bedrock的无服务器的智能工作流 智能工作流基于用户输入处理不可预见的任务&#xff0c;比如发起API调用。无服务器架构可以高效地管理这些任务和不同的工作负载&#xff0c;而无需维护服务器&#xff0c;从而加快部署速度。 你将学习如何通过使用带有保护措施的智能…...

SDMTSP:粒子群优化算法PSO求解单仓库多旅行商问题,可以更改数据集和起点(MATLAB代码)

一、单仓库多旅行商问题 单仓库多旅行商问题&#xff08;Single-Depot Multiple Travelling Salesman Problem, SD-MTSP&#xff09;&#xff1a;&#x1d45a;个推销员从同一座中心城市出发&#xff0c;访问其中一定数量的城市并且每座城市只能被某一个推销员访问一次&#x…...

Java中的访问修饰符:分类、作用及应用场景

在Java编程中&#xff0c;访问修饰符&#xff08;Access Modifiers&#xff09;是控制类、方法、变量和构造函数访问权限的关键工具。通过合理使用访问修饰符&#xff0c;可以有效地封装代码&#xff0c;保护数据&#xff0c;并确保代码的安全性和可维护性。本文将详细介绍Java…...