
愚公系列-.NET/C#知识点
文章平均质量分 74
愚公系列文章都是本人实际操作总结
愚公搬代码
《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。
《近期荣誉》:2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主,2024年华为云十佳博主等。
《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。
展开
-
【愚公系列】2021年11月 C#版 数据结构与算法解析 Stack和List性能分析
【代码】【愚公系列】2021年11月 C#版 数据结构与算法解析 Stack和List性能分析。原创 2020-08-23 21:13:59 · 481939 阅读 · 1 评论 -
【愚公系列】2021年11月 C#版 数据结构与算法解析 for和foreach性能分析
1、在固定长度或者长度不需要计算的时候for循环效率高于foreach;2、在不确定长度或者计算长度有损性能的时候用foreach比较方便–可以自己测试一下),循环遍历ArrayList集合时,for和foreach的耗时时间差不多,多次测试可以发现,for循环效率比foreach的效率还要高一些;循环遍历LinkedList集合时,for循环的耗时明显高于foreach循环的耗时。结论:当遍历数组结构的集合时用for或者foreach都行。当遍历链表结构的集合时一定不要用for循环。原创 2020-08-23 21:24:09 · 481676 阅读 · 2 评论 -
【愚公系列】2021年11月 C#版 数据结构与算法解析 Redis有序集合zset实现原理(跳表)
Redis有序集合中的元素的编码可以是 ziplist 或者 skiplist。ziplist和skiplist编码选择的标准在于Redis里的元素的数量以及元素成员的长度。当满足以下2个条件时,元素编码为ziplist:有序集合保存的元素数量小于128个有序集合保存的所有元素成员的长度小于64字节ziplist:ziplist编码的有序集合对象使用压缩列表作为底层实现。每个集合使用2个紧挨在一起的压缩列表节点来保存,第一个保存元素的成员,第二个保存元素的分值。压缩列表内的集合按分值从小到大排序原创 2020-08-27 10:06:49 · 479689 阅读 · 1 评论 -
【愚公系列】2021年11月 C#版 数据结构与算法解析(映射)
using Microsoft.AspNetCore.Builder;using Microsoft.Extensions.DependencyInjection;using Microsoft.Extensions.Hosting;using Microsoft.OpenApi.Models;using Volo.Abp;using Volo.Abp.AspNetCore.Mvc;using Volo.Abp.Autofac;using Volo.Abp.Modularity;using原创 2020-08-23 21:29:16 · 481203 阅读 · 1 评论 -
【愚公系列】2021年11月 C#版 数据结构基本使用(C#版)
数组的特点:内存连续存储,节约空间,可以索引访问,读取快,增删慢//Array:在内存上连续分配的,而且元素类型是一样的//可以坐标访问 读取快--增删慢,长度不变Console.WriteLine("***************Array-start******************");int[] Arraytoint = new int[10];Arraydata [0] = 1024;string[] Arraytostring = new string[] { "1024",.原创 2020-08-14 15:01:12 · 513305 阅读 · 1 评论 -
【愚公系列】2021年11月 C#版 数据结构与算法解析(递归)
简单的说:递归就是方法自己调用自己,每次调用时传入不同的变量,递归有助于编程者解决复杂的问题,同时也让代码变得整洁。原创 2020-08-23 21:23:11 · 481551 阅读 · 1 评论 -
【愚公系列】2023年09月 .NET/C#知识点-自定义绑定模型(文件上传)
在ASP.NET MVC中,数据模型绑定是将HTTP请求数据(如表单数据)转换为CLR对象的过程。自定义绑定模型可以让我们通过自定义规则来控制数据模型绑定。以下是一些自定义绑定模型的示例:自定义模型绑定器:我们可以实现自己的模型绑定器,继承IModelBinder接口,并覆盖BindModel方法来实现自定义的绑定逻辑。使用属性转换器:我们可以使用属性转换器来自定义值的转换行为。这可以通过为要绑定的属性添加TypeConverterAttribute来实现。原创 2023-09-14 14:52:35 · 34168 阅读 · 3 评论 -
【愚公系列】2023年09月 .NET/C#知识点-EF的事务和环境事务
事务是指一系列的操作,要么全部执行成功,要么全部不执行,不允许出现部分执行成功部分执行失败的情况。事务的作用是保证数据一致性,确保多个操作的执行结果是原子性的,保证数据的完整性和正确性。分布式事务是指在分布式系统中进行的跨多个节点或多个数据库的事务。在分布式环境中,由于数据分散在多个节点上,需要保证整个分布式事务的一致性,即所有节点要么全部执行成功,要么全部不执行。因此,分布式事务的意义在于保证数据的一致性、可靠性和完整性,防止数据的丢失和重复,实现分布式系统的高可用和高性能。原创 2023-09-14 11:50:36 · 34317 阅读 · 8 评论 -
【愚公系列】2023年09月 .NET/C#知识点-EF配置软删除
软删除是指在数据库中,对数据进行标记而不是实际删除数据记录。标记数据记录通常是通过添加一个额外的字段(如“deleted_at”)来实现的,表示该数据记录已被标记为删除。软删除的作用是保留数据完整性和历史记录,同时避免永久删除数据记录。这有助于恢复数据记录和分析数据历史趋势。软删除还可以减少数据库中的物理删除,提高数据安全性和系统性能。EF的Interceptor是一种拦截器,可以在数据库操作执行之前和之后对其进行干预或修改,从而更好地控制和改进数据库访问行为。原创 2023-09-14 11:05:24 · 32546 阅读 · 0 评论 -
【愚公系列】2023年09月 .NET/C#知识点-字符串拼接总结
在.NET中,字符串的拼接实质上是创建一个新的字符串对象。由于.NET中的字符串是不可变的,因此无法直接在原字符串上进行修改。当使用加号运算符或string.Concat方法时,会创建一个新的字符串对象,该对象包含原始字符串和要连接的字符串。然后,将新的字符串对象返回。使用字符串插值时,编译器会在编译时将字符串转换为字符串连接的形式,然后再创建一个新的字符串对象并返回。由于字符串是不可变的,因此在拼接大量字符串时需要特别注意性能问题。原创 2023-09-14 10:16:06 · 32586 阅读 · 1 评论 -
【愚公系列】2023年08月 .NET/C#知识点-即时语音的通信解析
即时语音是指通过网络或互联网实时通信的语音通话服务。通常使用VoIP(Voice over Internet Protocol)技术,即通过将语音转换为数字信号,通过互联网传输,接收方再将数字信号转换回语音。这种通信形式可以在任何具有互联网连接的设备上进行,如计算机、智能手机、平板电脑等。即时语音通常是一种免费或低成本的通信方式,已经成为人们经常使用的通信方式之一。即时语音通话广泛应用于各种场合和领域,包括但不限于:社交网络:如Facebook、微信、WhatsApp等;转载 2023-08-15 23:03:46 · 19557 阅读 · 29 评论 -
【愚公系列】2023年08月 .NET/C#知识点-异步四种实现方式
异步是指程序的一种执行模式,它与同步相对。在同步执行模式下,程序按照代码编写的顺序一步步执行,每个操作都要等待上一个操作完成后才能继续执行。在异步执行模式下,程序可以在一个操作执行的同时,继续执行另一个操作,而不需要等待前一个操作完成。在编程中,异步通常用于需要耗时操作的场景,例如网络请求、文件读写等。如果这些操作在同步模式下执行,会阻塞程序的运行,影响用户体验。而以异步模式执行,可以让程序在执行耗时操作的同时,继续响应用户的请求,提高程序的运行效率。原创 2023-08-14 22:39:10 · 19366 阅读 · 13 评论 -
【愚公系列】2023年07月 .NET/C#知识点-文件比较
文件比较是指将两个文件进行比较,找出它们之间的差异。通常用于版本控制、代码合并、文件备份等场景。文件比较可以通过对文件内容、大小、时间戳等多方面进行比较来实现。常用的文件比较工具包括 WinMerge、Beyond Compare、DiffMerge、KDiff3 等。这些工具可以在界面上直观地显示文件差异,并支持对差异进行合并、冲突解决等操作。对于文本文件,可以使用 diff 命令在命令行下进行比较。diff 命令将两个文件逐行进行比较,输出它们之间的不同之处。原创 2023-07-29 09:18:18 · 11377 阅读 · 20 评论 -
【愚公系列】2023年03月 .NET/C#知识点-Linq To Json
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考提示:这里对文章进行总结:例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。原创 2023-03-23 23:59:35 · 8524 阅读 · 0 评论 -
【愚公系列】2023年03月 .NET/C#知识点-匿名类的自动映射
net匿名类是一种临时创建的类,可以在运行时动态地创建。它可以用于简化代码,避免创建不必要的类。在使用匿名类时,编译器会自动为其创建一个对应的类,并将属性自动映射到该类中。这样可以方便地进行数据传递和处理,通常用于临时存储数据或传递参数。在 .NET 中,可以使用匿名类来创建一个具有一组属性的对象,这些属性可以在创建时进行初始化。在这个例子中,我们创建了一个名为 person 的匿名类对象,该对象具有 Name 和 Age 两个属性,并分别初始化为 “John” 和 30。原创 2023-03-14 02:30:00 · 8560 阅读 · 10 评论 -
【愚公系列】2023年03月 .NET/C#知识点-拷贝文件的总结
数据复制主要功能是将一组数据从一个数据源拷贝到一个或多个数据源,涵盖数据的监控、获取、传输、存储、校验等步骤。文件拷贝是指将一个文件从一个位置复制到另一个位置的过程。文件拷贝可以在同一台计算机上完成,也可以在不同的计算机之间完成。文件拷贝可以使用拷贝命令或拷贝软件完成,也可以使用拖放操作完成。文件拷贝也是数据复制的过程,不仅仅可以进行数据备份,而且还可以防止数据被占用的情况,使用不了文件。这时候的解决方案就是把另一个程序的文件拷贝到当前程序就可以了。原创 2023-03-11 01:00:00 · 8842 阅读 · 5 评论 -
【愚公系列】2023年02月 .NET/C#知识点-使用控制台手搭webapi框架
WebAPI是一种协议,用于允许网络应用程序(如浏览器)与网络服务器(如Web服务器)之间进行通信。它可以用于处理数据,访问数据库,处理图像和视频,以及进行其他高级功能。EFCoreAutofacSerilogSwagger非常多底层知识。原创 2023-02-28 01:00:00 · 9678 阅读 · 26 评论 -
【愚公系列】2023年02月 .NET/C#知识点-区块链概念和实现
区块链是一种分布式数据库,使用密码学技术进行安全的数据记录和验证。它可以被用来创建可信赖的记录,并确保记录不可篡改。区块链的原理其实是一个又一个区块组成的链条。每一个区块中保存了一定的信息,它们按照各自产生的时间顺序连接成链条。这个链条被保存在所有的服务器中,只要整个系统中有一台服务器可以工作,整条区块链就是安全的。这些服务器在区块链系统中被称为节点,它们为整个区块链系统提供存储空间和算力支持。原创 2023-02-26 00:30:00 · 9676 阅读 · 18 评论 -
【愚公系列】2023年02月 .NET/C#知识点-List转成字符串的总结
List转成字符串的总结的应用场景非常广泛,可以用于字符串拼接、数据处理和存储、显示等方面。它还可以用于格式化输出,以及将列表数据导出到文本文件等。forLinqfor循环是一种结构,它可以重复执行一系列语句,直到指定的条件不再满足。它通常用于遍历数组或字符串,或者在某个特定的条件被满足之前执行某项任务。// C # string数组 using System . Diagnostics;"三体人" , "史强" , "宇宙闪烁" , "汪淼" , "低维展开" };原创 2023-02-18 13:43:09 · 8978 阅读 · 2 评论 -
【愚公系列】2023年02月 .NET/C#知识点-委托、匿名方法、Lambda、泛型委托、表达式树的进化史
在 .NET 中,委托是一种类型,它可以持有对一个或多个方法的引用,并允许将这些方法作为参数传递给其他方法。.NET 中的委托类似于 C 和 C++ 中的函数指针,但具有更高的类型安全性和其他功能。委托的概念最早可以追溯到早期的编程语言,例如Simula和Smalltalk。然而,C# 的委托实现受到了函数指针和C++中的函数对象的启发。在.NET框架中,委托最初被引入为事件处理程序的机制。事件是一种广泛使用的编程模型,用于在程序中处理异步和交互性操作。事件可以被认为是类似于信号和槽机制的一种形式。原创 2023-02-16 01:45:00 · 8616 阅读 · 8 评论 -
【愚公系列】2023年02月 .NET/C#知识点-数组复制总结
C#中有多维数组和交错数组多维数组:就是m×n的矩阵,m行n列交错数组:有m行,但是每一行不一定是n列定义一下常量,SIZE 表示数组大小,COUNT 表示等会要做拷贝测试的循环次数//SIZE = 32原创 2023-02-15 01:45:00 · 8993 阅读 · 48 评论 -
【愚公系列】2023年02月 .NET/C#知识点-程序运行计时的总结
在分析一个程序算法时间复杂度时,可以使用统计程序或程序片段的计算时间有助于理解程序性质,许多语言或系统都提供了内部计时功能。StopwatchStopwatch 一般用来测量代码运行消耗时间,以便获取更多代码运行性能上的数据。运行前先要调用 Start 函数来开始计时,结束时需要用到 Stop 函数停止计时,中间则可以插入需要监测的代码。如果有需要也还可以通过 Reset 或者 Restart 函数来重置计时器再开始下一次计时。原创 2023-02-05 00:30:00 · 8878 阅读 · 22 评论 -
【愚公系列】2023年02月 .NET/C#知识点-.NET Core配置文件详解
任何一个系统进程都是同个IP和端口号的组合来定位的。当然还可以用命令进行配置启动,比如命令的方式来修改启动的端口号,缺点是每次启动都得添加。原创 2023-02-04 11:18:58 · 9386 阅读 · 22 评论 -
【愚公系列】2023年01月 .NET/C#知识点-EF Core性能优化之显示编译
性能优化,简而言之,就是在不影响系统运行正确性的前提下,使之运行地更快,完成特定功能所需的时间更短。对于EF Core的查询优化其实也是多种多样的,性能优化是在特定的情况下的特定解决方案,下面着重介绍EF Core的显示编译查询。原创 2023-01-27 00:30:00 · 8756 阅读 · 14 评论 -
【愚公系列】2023年01月 .NET/C#知识点-LINQ和lambda实现左、右、内链接
table1居左,故谓之左连接。这种情况下,以table1为主,即table1中的所有记录均会被列出。有一下三种情况:1、对于table1中的每一条记录对应的城市如果在table2中也恰好存在而且刚好只有一条,那么就会在返回的结果中形成一条新的记录。如上面Person A和Person B对应的情况。2、对于table1中的每一条记录对应的城市如果在table2中也恰好存在而且有N条,那么就会在返回的结果中形成N条新的记录。如上面的Person C对应的情况。原创 2023-01-25 00:30:00 · 9446 阅读 · 10 评论 -
【愚公系列】2023年01月 .NET/C#知识点-List对象去重的方法总结
数组去重其实是个很常见的面试题,比如在数据分析中,有时候因为一些原因会有重复的记录,因此需要去重。如果重复的那些行是每一列懂相同的,删除多余的行只保留相同行中的一行就可以了。其实不管前端还是后端,都是可以进行数组去重的,但数据处理一般都在后端,所以本文对List对象去重的方法进行总结和性能分析。使用循环去除重复,需要新实例化一个List,再循环判断数组对象里是否有这个对象,如果有没有重复添加到这个集合对象,否则不添加。get;set;get;set;get;set;get;set;原创 2023-01-24 00:30:00 · 9891 阅读 · 20 评论 -
【愚公系列】2023年01月 .NET/C#知识点-文件上传与下载
文件上传有两种方式:WEB上传和FTP上传。WEB上传就是通过点击网页中的“浏览”、“选定”、“上传”(或“确定”、“提交”)等按钮来上传文件的方式。精炼地说就是通过网页的功能上传文件。FTP[File Transfer Protocol]中文译为文件传输协议,是Internet上的另一项主要服务,这项服务让使用者能通过Internet来传输各式各样的文件。FTP上传的目标服务器有一个固定的FTP地址,这个地址可以是IP地址,也可以是域名地址。原创 2023-01-21 22:00:17 · 9024 阅读 · 6 评论