设计素材网站图案免费低价建设网站

news/2025/9/30 11:30:22/文章来源:
设计素材网站图案免费,低价建设网站,怎样对一个网站做seo,织梦模板修改网站颜色【.NET Core】Linq查询运算符#xff08;二#xff09; 文章目录 【.NET Core】Linq查询运算符#xff08;二#xff09;一、概述二、生成运算2.1 DefaultIfEmpty2.2 Empty2.3 Range2.4 Repeat 三、相等运算3.1 SequenceEqual 四、元素运算4.1 ElementAt4.2 ElementAtOrDef…【.NET Core】Linq查询运算符二 文章目录 【.NET Core】Linq查询运算符二一、概述二、生成运算2.1 DefaultIfEmpty2.2 Empty2.3 Range2.4 Repeat 三、相等运算3.1 SequenceEqual 四、元素运算4.1 ElementAt4.2 ElementAtOrDefault4.1 First4.2 FirstOrDefault4.3 Last4.4 LastOrDefault4.5 Single4.6 SingleOrDefault 五、转换数据类型5.1 AsEnumerable5.2 AsQueryable5.3 AsEnumerable和AsQueryable5.4 Cast5.5 OfType5.6 ToArray5.7 ToDictionary5.8 ToList5.9 ToLookup 一、概述 查询运算符是组成Linq模式的方法。这些方法中的大多数都作用于序列其中序列指其类型实现IEnumberableT接口或IQueryableT接口的对象。标准查询运算符提供包括筛选、投影、集合、排序等查询功能。 查询运算符包含两组一组作用于类型IEnumberableT的对象另一组作用于类型IQueryableT的对象。 《Linq查询运算符一》详细介绍了筛选数据、投影运算、设置运算 、数据排序、限定符运算及数据分区本章将继续介绍。 二、生成运算 2.1 DefaultIfEmpty 返回指定序列的元素如果序列为空则返回单一实例集合中的类型参数的默认值。 IListint list new Listint(); var lst list.DefaultIfEmpty(); foreach (var item in lst) {Console.WriteLine(item); }输出结果 02.2 Empty 初始化一个Empty空集合 var listnew List() 等于 var list Enumerable.Empty(); var lst Enumerable.Emptyint(); foreach (var item in lst) {Console.WriteLine(item); }2.3 Range Range()方法返回IEnumerable类型的集合该集合具有指定数量的元素和从第一个元素开始的顺序值。 var lst Enumerable.Range(5, 2); foreach (var item in lst) {Console.WriteLine(item); }执行结果 5 62.4 Repeat Repeat()方法使用指定数量的元素生成IEnumerable类型的集合每个元素包含相同的指定值。 var lst Enumerable.Repeatdouble(5, 2) foreach (var item in lst) {Console.WriteLine(item); }执行结果 5 5三、相等运算 3.1 SequenceEqual 两个序列其相应元素相等且具有被视为相等的相同数量的元素 public class Person {public int Id { get; set; }public string Code { get; set; }public string Name { get; set; } } IListint listA new Listint() { 1, 2, 3, 4 }; IListint listB new Listint() { 1, 2, 3, 4 }; IListint listC new Listint() { 2, 1, 3, 4 }; bool falg Enumerable.SequenceEqual(listA, listB); Console.WriteLine(falg); bool falgC Enumerable.SequenceEqual(listA, listC); Console.WriteLine(falgC);IListPerson peopleA new ListPerson() {new Person { Id 2, Code 002, Name CAZ },new Person { Id 2, Code 002, Name CAZ }, };IListPerson peopleB new ListPerson() {new Person { Id 2, Code 002, Name CAZ },new Person { Id 2, Code 002, Name CAZ }, }; bool flagPersonA Enumerable.SequenceEqualPerson(peopleA, peopleB); Console.WriteLine(flagPersonA); bool flagPersonB Enumerable.SequenceEqualPerson(peopleA, peopleB, new StudentComparer()); Console.WriteLine(flagPersonB);/// summary /// 重写比较接口 /// /summary public class StudentComparer : IEqualityComparerPerson {public bool Equals(Person? x, Person? y){if (x.Id y.Id x.Code.ToLower() y.Code.ToLower())return true;return false;}public int GetHashCode([DisallowNull] Person obj){return obj.GetHashCode();} } 四、元素运算 元素运算从序列中返回唯一特定的元素。 4.1 ElementAt 返回集合中指定索引处的元素。 IListPerson peopleA new ListPerson() {new Person { Id 1, Code 001, Name 任峻 },new Person { Id 2, Code 002, Name 陈矫 },new Person { Id 3, Code 003, Name 丁仪 },new Person { Id 4, Code 004, Name 司马朗 },new Person { Id 5, Code 005, Name 夏侯渊 }, }; Person person peopleA.ElementAt(4); Console.WriteLine($Id{person.Id},Code{person.Code},Name{person.Name});执行结果 Id5,Code005,Name夏侯渊4.2 ElementAtOrDefault 返回集合中指定索引处的元素如果索引超出范围则返回默认值。 IListPerson peopleA new ListPerson() {new Person { Id 1, Code 001, Name 任峻 },new Person { Id 2, Code 002, Name 陈矫 },new Person { Id 3, Code 003, Name 丁仪 },new Person { Id 4, Code 004, Name 司马朗 },new Person { Id 5, Code 005, Name 夏侯渊 }, }; Person person peopleA.ElementAtOrDefaultPerson(5); Console.WriteLine($Id{person?.Id},Code{person?.Code},Name{person?.Name});执行结果 Id,Code,Name4.1 First 返回集合的第一个元素或满足条件的第一个元素。 IListPerson peopleA new ListPerson() {new Person { Id 1, Code 001, Name 任峻 },new Person { Id 2, Code 002, Name 陈矫 },new Person { Id 3, Code 003, Name 丁仪 },new Person { Id 4, Code 004, Name 司马朗 },new Person { Id 5, Code 005, Name 夏侯渊 }, }; Person person peopleA.First(); Console.WriteLine($Id{person?.Id},Code{person?.Code},Name{person?.Name});执行结果 Id1,Code001,Name任峻4.2 FirstOrDefault int[] numbers new int[] { 1, 2, 3, 5, 7, 11 }; var nums numbers.FirstOrDefaultint(ee1); Console.WriteLine(${ nums});执行结果 04.3 Last 返回集合的最后一个元素或满足条件的最后一个元素。 int[] numbers new int[] { 1, 2, 3, 5, 7, 11 }; var nums numbers.Last(ee5); Console.WriteLine(${ nums});执行结果 34.4 LastOrDefault 返回集合的最后一个元素或满足条件的最后一个元素。 如果此类元素不存在则返回默认值。 int[] numbers new int[] { 1, 2, 3, 5, 7, 11 }; var nums numbers.LastOrDefault(ee11); Console.WriteLine(${ nums});执行结果 04.5 Single 返回集合的唯一一个元素或满足条件的唯一一个元素。如果没有要返回的元素或要返回多个元素则引发InvalidOperationException。 int[] numbers new int[] { 100}; int result numbers.Single(); Console.WriteLine(result);执行结果 1004.6 SingleOrDefault 返回集合的唯一一个元素或满足条件的唯一一个元素。如果没有要返回的元素或要返回多个元素则引发InvalidOperationException。 int[] numbers new int[] { 100}; int result numbers.SingleOrDefault(); Console.WriteLine(result);执行结果 100五、转换数据类型 转换数据类型可以通过转换方法更改输入对象的类型。名称以“As”开头的转换方法可更改源集合的静态类型但不枚举延迟加载此源集合。名称以“To”开头的方法可枚举即时加载源集合并将项放入相应的集合类型。 5.1 AsEnumerable 所有实现了IEnumerable接口的类型都可以调用此方法来获取一个IEnumerable集合。此方法一般仅用于实现类中的方法与IEnumerable接口方法重名时。 var products db.Product.AsEnumerable().Select(p new {p.Id, p.Name, p.CreateTime.Date});在迭代时遇见AsEnumerable()会先进行Sql查询对已查出来的结果当然能进行Linq to object操作。 5.2 AsQueryable AsQueryable将一个序列向下转换 一个IQueryable,它生成了一个本地查询的IQueryable包装。IQueryable实现了IEnumerable接口。但IEnumerable换成IQueryable后速度提高很多。 var query (from item in context.Users.AsQueryable() where item.id 10select item.id).ToList();5.3 AsEnumerable和AsQueryable AsEnumerable()是延迟执行的实际上什么都没有发生当真正使用对象的时候例如调用First, Single, ToList…的时候才执行。AsEnumerable将一个序列向上转换为一个IEnumerable, 强制将Enumerable类下面的查询操作符绑定到后续的子查询当中。AsQueryable将一个序列向下转换为一个IQueryable, 它生成了一个本地查询的IQueryable包装。AsEnumerable()延迟执行不会立即执行。当你调用.AsEnumerable()的时候实际上什么都没有发生。ToList()立即执行。当你需要操作结果的时候用.ToList()否则如果仅仅是用来查询不需要进一步使用结果集并可以延迟执行就用.AsEnumerable()/IEnumerable /IQueryable。AsEnumerable()虽然延迟执行但还是访问数据库而.ToList()直接取得结果放在内存中。比如我们需要显示两个部门的员工时部门可以先取出放置在List中然后再依次取出各个部门的员工这时访问的效率要高一些因为不需要每次都访问数据库去取出部门。IQueryable实现了IEnumberable接口。但IEnumerable 换成IQueryable后速度提高很多。IEnumerable跑的是Linq to Object强制从数据库中读取所有数据到内存先。 5.4 Cast 将集合中的元素转换为指定类型。 DataRow rowdt.Rows.CastDataRow().Single();5.5 OfType 根据其转换为指定类型的能力筛选值。 Listobject objList new Listobject {new { ID 1, Name 阿里 },new { ID 2, Name 百度 },new Person() { Id1, Name 马云, Code001 } }; var p objList.OfTypePerson().ToList(); foreach (var item in p) {Console.WriteLine(item.Name); }5.6 ToArray 将结合转换为数组。此方法强制执行查询。 IListstring list new Liststring() { A, B, C }; string[] arr list.ToArray();5.7 ToDictionary 根据键选择器函数将元素放入DictionaryTKey,TValue。此方法强制执行查询。 Person[] parameters new Person[] {new Person() { Id 1, Code 052, Name 正一郎 },new Person() { Id 2, Code 028, Name 清次郎 },new Person() { Id 3, Code 020, Name 誠三郎 },new Person() { Id 4, Code 018, Name 征史郎 }, }; Dictionaryint, Person dictionary parameters.ToDictionary(value value.Id);5.8 ToList 将集合转换为ListT。此方法强制执行查询。 string[] strArr { 1,2, 3 }; IListstring strList strArr.ToList();5.9 ToLookup 根据键选择器函数将元素放入LookupTKey,TElement一对多字典。此方法强制执行查询。该ToLookup()是不可改变一旦创建一个Lookup,不能添加或删除元素。 IListPerson values new ListPerson() {new Person { Id1,Name0001},new Person { Id2,Name0002},new Person{ Id3,Name0003},new Person{ Id4,Name0004}, }; var list values.ToLookup(e e.Id); foreach (var item in list) {Console.WriteLine(item.Key); }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/922772.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站备案截图宁波易企网做的网站

Axious的请求与响应 1.什么是Axious Axious是一个开源的可以用在浏览器和Node.js的异步通信框架,它的主要作用就是实现AJAX异步通信,其功能特点如下: 从浏览器中创建XMLHttpRequests ~从node.js创建Http请求 支持PromiseAPI 拦截请求和…

k8s使用的etcd空间清理

1.查看当前k8s的情况[root@master snap]# kubectl get pods -n kube-system -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE …

MyBatis 与 JPA 的核心对比

------------------------------------------------------------------------------------------- 一、MyBatis 中 Mapper 注解与 XML 方式在处理复杂业务逻辑时的核心差异 复杂业务逻辑通常涉及 动态 SQL(多条件拼接…

完整教程:Redis 提供了两种主要的持久化机制:RDB 和 AOF

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

本土化战略赋能:Gitee如何领跑中国DevOps黄金赛道

本土化战略赋能:Gitee如何领跑中国DevOps黄金赛道 中国软件开发领域正在经历一场深刻的效率革命。随着国家"十四五"数字经济规划明确要求企业加速数字化转型,DevOps作为连接开发与运维的关键技术栈,其市场…

陕西省建设注册中心网站建设网站需要哪些

时序数据库全称为时间序列数据库。时间序列数据库指主要用于处理带时间标签(按照时间的顺序变化,即时间序列化)的数据,带时间标签的数据也称为时间序列数据。 时间序列数据主要由电力行业、化工行业、气象行业、地理信息等各类型…

打印机错误0x0000709,问题排查和修复指南

办公时突然弹出打印机报错窗口,电脑显示打印机错误 0x0000709不知道什么意思,连重新连接打印机都不管用,急着打文件的话真的很闹心。但其实打印机错误码是有规律的,不同代码对应不同故障原因,比如 0x0000709 多和…

中国科技成就素材seo引擎优化

AlternationCount属性:表示有几行不同的颜色来回替换,如果设置2则表示有两个颜色交替循环 AutoGenerateColumns属性:是否生成列 CanUserAddRows属性:用户是否可以添加行 CanUserDeleteRows属性:用户是否可以删除行 …

2025.9.29 测试

2025.9.29 测试T1. 马赛克上色 就是个随机题目 告诉我们烤柿要大胆 所有点都是偶度数,直接构造欧拉回路,三个截一段输出 然后有奇数点呢? 这里构出一种正确性很高的 trick 度数越小要求越严格,于是我们每次选出一个…

深度学习(CVAE)

自编码器这类模型有下面几个: 自编码器(AE):目标是压缩与重建。它是一个判别模型,目标是学习数据的高效表示,主要用于降维、去噪和数据压缩,而不是生成新数据。 变分自编码器(VAE): 学习数据的概率分布并生成…

c# aot orm 框架测试 mysql

SqlSugar 的文档比较齐全,一次通过:https://www.donet5.com/Home/Doc?typeId=2574,但是 SqlSugar Aot 发布在 40M 左右,感觉太大了点。 FreeSql 的 AOT 文档就不太友好了,试了一下各种报错,最后发现要使用 Free…

深入解析:论文阅读:硕士学位论文 2025 面向大语言模型的黑盒对抗性攻击与防御关键技术研究

深入解析:论文阅读:硕士学位论文 2025 面向大语言模型的黑盒对抗性攻击与防御关键技术研究2025-09-30 11:09 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !import…

网站常用的js效果做的网站被挂马

Java 汉字转拼音 1.TinyPinyin 功能: 适用于Java和Android的快速、低内存占用的汉字转拼音库。 特性: 生成的拼音不包含声调,均为大写;支持自定义词典,支持简体中文、繁体中文;执行效率很高(Pinyin4J的…

怎么给汽车网站做推广郑州建设局官网

1、使用父子关系调整下使其更加整洁 2、比如说我修改了下url,那所有的页面都要更改 优化:把这个url抽出来,新建一个Api文件夹用于存放所有接口的url,在业务里只需要关注业务就可以 使用时 导包 发请求 如果想要更改路径,在这里…

PK-2877电流互感器在高频脉冲电源模块测试中的应用方案

一、项目背景与需求 一家专注于高频脉冲电源模块研发与生产的电子设备企业,其产品广泛应用于工业自动化控制、通信基站电源等领域。这些电源模块在工作时会产生高频脉冲电流,电流峰值可达100A,脉冲频率在数百kHz至数…

VC++ 使用OpenSSL创建RSA密钥PEM档案

VC++ 使用OpenSSL创建RSA密钥PEM档案pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monac…

CF1699D Almost Triple Deletions

被神秘贪心标签误导了。 你考虑答案的最终形式长什么样,就是保留若干个相同的数,再将其中间的区间整段整段删干净。 你先枚举保留什么数,然后发现我们可以设 \(f_{i}\) 表示到了第 \(i\) 个位置最多能保留多少个数,…

QMT回测模式为什么要在副图进行

在QMT系统中,回测必须以副图模式进行,主要有以下原因: (1)数据处理与性能优化 副图模式允许策略专注于历史数据的分析和计算,避免与主图的实时行情显示产生冲突。回测过程中,系统需要遍历大量历史K线数据,副图…

DAY20 Channel(通道)NIO(同步,非阻塞)、Selector(选择器)、NIO2-AIO(异步、非阻塞) - 指南

DAY20 Channel(通道)NIO(同步,非阻塞)、Selector(选择器)、NIO2-AIO(异步、非阻塞) - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !impor…

详细介绍:Servlet完全上手:核心语法与生命周期详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …