- 2024-08-10朋友吐槽我为什么这么傻不在源生成器中用string.GetHashCode, 而要用一个不够优化的hash方法
明明有更好的hash方法有位朋友对我吐槽前几天我列举的在源生成器的生成db映射实体的优化点提前生成部分hashcode进行比较所示代码publicstaticvoidGenerateReadTokens(thisIDataReaderreader,Span<int>s){for(inti=0;i<reader.FieldCount;i++){
- 2024-07-09C# Equals 和 GetHashCode 方法认知及Distinct方法解析
参照:生成C#Equals和GetHashCode方法重写-VisualStudio(Windows)|MicrosoftLearn如何修改字符串内容-C#|MicrosoftLearn在C#中,Equals 和 GetHashCode 方法用于对象的比较和哈希值计算。它们在值类型和值类型的行为上有所不同。值类型(ValueTypes)Equals
- 2024-05-10C#中Linq的去重方式Distinct详解
一、首先创建一个控制台应用程序,添加一个Person对象usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespaceCompare{publicclassPerson{publicstringName{get;set;}
- 2023-09-10集线器 SignalR.Core 消息推送实例
SignalR.Core消息推送实例publicclassChatHub:Hub{privatestring_className="ChatHub";//privateSystem.Threading.Timertimer=null;privateSystem.Threading.Timer_timer=null;privatestaticreadonlyobject_lock=newobj
- 2023-08-23List<Dictionary<string, string>> 去重方法
List<Dictionary<string, string>>可以使用LINQ的Distinct()方法来去重。不过需要提供一个自定义的Comparer。实现接口IEqualityComparerpublicclassDictionaryComparer:IEqualityComparer<Dictionary<string,string>>{publicboolEquals(Dictionary<string,st
- 2023-07-10.NET Core应用程序每次启动后使用string.GetHashCode()方法获取到的哈希值(hash)不相同
前言如标题所述,在ASP.NETCore应用程序中,使用string.GetHashCode()方法去获取字符串的哈希值,但每次重启这个ASP.NETCore应用程序之后,同样的字符串的哈希值(hash)但不相同了。这是什么意思呢?具体的应用场景是这样的:项目中有一张表的某个字段保存了类似URL这样的字符串,这张表
- 2023-06-30基准测试BenchmarkDotNet
今天飞书群里同事争论枚举.GetHashCode()会装箱,要改为(int)枚举,争吵不下纸上谈兵无法说服另外的人,上BenchmarkDotNet基准测试添加BenchmarkDotNet库<PackageReferenceInclude="BenchmarkDotNet"Version="0.13.5"/>性能测试用例classProgram{ staticvoidMain(strin
- 2023-06-05C#读写锁ReaderWriterLockSlim的使用
读写锁的概念很简单,允许多个线程同时获取读锁,但同一时间只允许一个线程获得写锁,因此也称作共享-独占锁。在C#中,推荐使用ReaderWriterLockSlim类来完成读写锁的功能。某些场合下,对一个对象的读取次数远远大于修改次数,如果只是简单的用lock方式加锁,则会影响读取的效率。而如果采用读
- 2023-06-01创建字典进行字段匹配
--查询varpostNumFiled=Static_Dic.RoleType_PostNum.FirstOrDefault(o=>o.Key==roleType).Value; --封装匹配的字典publicstaticDictionary<int,string>RoleType_PostNum{get{Dictionary<int,string&g
- 2023-05-26c#读写锁浅记录
publicclassC{staticprivateReaderWriterLockSlimrwl=newReaderWriterLockSlim();publicstaticvoidMain(){Threadt_read1=newThread(newThreadStart(WriteSomething));t_read1.Start();Console.WriteLine("{0}C
- 2023-03-06【转载】将C#里的枚举Enum转换为int
版权声明:本文为博主原创文章,遵循CC4.0by-sa版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/lzdidiv/article/details/71170528将枚举类型转
- 2022-12-23重学c#系列—— 反射的基本理解[三十三]
前言在上一章中介绍了什么是反射:https://www.cnblogs.com/aoximin/p/16440966.html正文上一节讲述反射的基本原理和为什么要用反射,还用反射的优缺点这些。其二者的
- 2022-12-14深拷贝与浅拷贝
在C#中的ICloneable中给出的Clone方法只是一个模棱两可的方法,并不足以实现深拷贝和浅拷贝。 深拷贝: using(StreamobjectStream=newMemoryStream()){IForma
- 2022-12-14Linq和集合
数组在定义的时候就确定长度,且不可变。ArrayList是链表结构,可以动态的增减内存空间。List是ArrayList的泛型实现,除去了拆箱装箱的操作。 int[]iArr={0,1,2,3,
- 2022-09-27c#重写string的gethashcode
1publicstaticintGetStringHashCode(stringvalue)2{3inth=0;//默认值是04if(value.Length>0)5