推荐一个不到2MB的C#开发工具箱,集成了上千个常用操作类

news2024/12/24 7:12:57

今天给大家推荐一个C#开发工具箱,涵盖了所有常用操作类,体积小、功能强大。

项目简介

C# 开发工具箱。大都是静态类,加密解密,反射操作,权重随机筛选算法,分布式短id,表达式树,linq扩展,文件压缩,多线程下载和FTP客户端,硬件信息,字符串扩展方法,日期时间扩展操作,中国农历,大文件拷贝,图像裁剪,验证码,断点续传,集合扩展、Excel导出等常用封装。诸多功能集一身,代码量不到2MB!

图片

技术架构

开发工具:VisualStudio2019

SDK:.Net Core 2.1.0

项目结构

图片

特色功能示例

字符串格式校验

bool isEmail="337845818@qq.com".MatchEmail(); // 可在appsetting.json中添加EmailDomainWhiteList和EmailDomainBlockList配置邮箱域名黑白名单,逗号分隔,如"EmailDomainBlockList": "^w{1,5}@qq.com,^w{1,5}@163.com,^w{1,5}@gmail.com,^w{1,5}@outlook.com",
bool isInetAddress = "114.114.114.114".MatchInetAddress();
bool isUrl = "http://ldqk.org/20/history".MatchUrl();
bool isPhoneNumber = "15205201520".MatchPhoneNumber();
bool isIdentifyCard = "312000199502230660".MatchIdentifyCard();// 校验中国大陆身份证号
bool isCNPatentNumber = "200410018477.9".MatchCNPatentNumber(); // 校验中国专利申请号或专利号,是否带校验位,校验位前是否带“.”,都可以校验,待校验的号码前不要带CN、ZL字样的前缀

任意进制转换

NumberFormater nf = new NumberFormater(36);//内置2-62进制的转换
//NumberFormater nf = new NumberFormater("0123456789abcdefghijklmnopqrstuvwxyz");// 自定义进制字符,可用于生成验证码
string s36 = nf.ToString(12345678);
long num = nf.FromString("7clzi");
Console.WriteLine("12345678的36进制是:" + s36); // 7clzi
Console.WriteLine("36进制的7clzi是:" + num); // 12345678
var s = new NumberFormater(62).ToString(new Random().Next(100000, int.MaxValue)); //配合随机数生成随机字符串

唯一ID生成

var token=Stopwatch.GetTimestamp().ToBinary(36);
var set = new HashSet<string>();
double time = HiPerfTimer.Execute(() =>
{
    for (int i = 0; i < 1000000; i++)
    {
        set.Add(Stopwatch.GetTimestamp().ToBinary(36));
    }
});
Console.WriteLine(set.Count==1000000);//True
Console.WriteLine("产生100w个id耗时"+time+"s");//1.6639039s

农历转换

ChineseCalendar.CustomHolidays.Add(DateTime.Parse("2018-12-31"),"元旦节");//自定义节假日
ChineseCalendar today = new ChineseCalendar(DateTime.Parse("2018-12-31"));
Console.WriteLine(today.ChineseDateString);// 二零一八年十一月廿五
Console.WriteLine(today.AnimalString);// 生肖:狗
Console.WriteLine(today.GanZhiDateString);// 干支:戊戌年甲子月丁酉日
Console.WriteLine(today.DateHoliday);// 获取按公历计算的节假日

加密解密

var enc="123456".MDString();// MD5
var enc="123456".MDString("abc");// MD5加盐
var enc="123456".MDString2();// MD5两次
var enc="123456".MDString2("abc");// MD5两次加盐
var enc="123456".MDString3();// MD5三次
var enc="123456".MDString3("abc");// MD5三次加盐


string aes = "123456".AESEncrypt();// AES加密为密文
string s = aes.AESDecrypt(); //AES解密为明文
string aes = "123456".AESEncrypt("abc");// AES密钥加密为密文
string s = aes.AESDecrypt("abc"); //AES密钥解密为明文


string enc = "123456".DesEncrypt();// DES加密为密文
string s = enc.DesDecrypt(); //DES解密为明文
string enc = "123456".DesEncrypt("abcdefgh");// DES密钥加密为密文
string s = enc.DesDecrypt("abcdefgh"); //DES密钥解密为明文


RsaKey rsaKey = RsaCrypt.GenerateRsaKeys();// 生成RSA密钥对
string encrypt = "123456".RSAEncrypt(rsaKey.PublicKey);// 公钥加密
string s = encrypt.RSADecrypt(rsaKey.PrivateKey);// 私钥解密


string s = "123".Crc32();// 生成crc32摘要
string s = "123".Crc64();// 生成crc64摘要

项目地址:https://github.com/ldqk/Masuit.Tools

- End -

推荐阅读

  • 最新.NetCore/C#全栈视频教程入门教程

  • 一个基于.Net+Vue开发的开源权限工作流系统

  • 推荐一个不到2MB的C#开发工具箱,集成了上千个常用操作类

  • 推荐一个基于.NET Core 3.1开发开源的分布式任务调度系统

  • .Net服务器性能监控,应用耗时统一监控平台

专注分享编程知识、热门有用有趣的开源项目

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

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

相关文章

单链表简单实现

单链表实现一、为什么会存在单链表&#xff1f;二、什么是单链表&#xff1f;三、单链表结构定义四、单链表的基本操作1、 创建结点2、 销毁链表3、 打印链表4、 尾插节点5、 头插结点6、 尾结点的删除7、 头结点的删除8、 单链表的查找9、 单链表在pos位置之后插入10、单链表在…

在jenkins上创建一个CANoe Job

目录实战项目CANoe 工程配置全局安全创建 slave 节点创建pipline Job&#xff1a; CANoeAutoRun实战项目CANoe 工程 配置全局安全 将代理和SSH Server都设置成随机选取&#xff0c;后面再本机创建slave 节点要用&#xff0c;因为我们会在用一台机器上创建了master和slave节点…

快充伤电池?我来帮何同学做个假设检验

最近看到何同学的视频&#xff0c;拿40部手机花两年半做了关于各种充电的实验视频&#xff0c;视频确实很好看&#xff0c;花里胡哨&#xff0c;看着科技感满满&#xff5e;。但是关于实验设计和根据实验的数据得出最后的结论上似乎有些草率。 实验设计上就不提了&#xff0c;…

周涛:在大数据沙滩上捡拾“珍珠”|奋斗者正青春

“我始终觉得&#xff0c;创新的本原就是好奇心&#xff0c;要像小孩儿一样&#xff0c;一直不断地追问&#xff0c;向这个世界讨要答案。在追寻答案的过程中&#xff0c;要有独立探索和批评的精神&#xff0c;不能轻信权威。” 1 提起电子科技大学教授周涛&#xff0c;大多…

【定语从句练习题】who、which

1. 填空训练 翻译的时候加上 … 的 1.who 2.which 3.which 4.which 5.who 6.which 7.which 8.who 9.who 10.which 11.which 12.who 2. 选择 1.took 2.live 3.she is 3.lost 5.bought 6.is parked 7.it cuts 8.writes 9.make 10.lent you. 10.lend sb. sth 这里需要&…

Java反射06:反射的应用之动态代理

反射的应用之动态代理 &#xff08;这里没听懂&#xff0c;知道反射体现了代理动态性就行&#xff0c;后面框架再学习&#xff09; 代理设计模式的原理 使用一个代理将对象包装起来, 然后用该代理对象取代原始对象。任何对原 始对象的调用都要通过代理。代理对象决定是否以及何…

C语言之指针详解

文章目录1 指针1.1 简介1.2 什么是指针1.3 使用指针1.3.1 简单使用1.3.2 NULL 指针1.3.3 指针算术运算1.3.3.1 定义1.3.3.2 遍历数组&#xff1a;递增一个指针1.3.3.3 遍历数组&#xff1a;递减一个指针1.3.3.4 指针的比较1.3.4 指针数组1.3.5 指向数组的指针1.3.6 指向指针的指…

Django中利用Admin后台实现Excel/CSV的导入更新数据库和导出数据到Excel/CSV

本文基于Django自带的admin 后台实现Excel&#xff0c;csv&#xff0c;Json等格式文件的导入并更新后台数据库。 核心是引入 django-import-export模块。 1、测试相数据准备&#xff1a; 我们先创建一个app&#xff1a;app01 python manage.py startapp app01 然后在app01…

软考下午题第1题——数据流,题目分析与案例解析:

答题技巧-【11-12分】分必拿方法&#xff1a; 下午第一题肯定是数据流的题目&#xff0c;那么&#xff0c;数据流肯定要找到对应的实体、关系模式等内容&#xff0c;审题的时候一定要细致&#xff0c;下午时间也是相当够的&#xff0c;所以每句话记住&#xff0c;至少读3遍&am…

【pyhon】利用pygame实现彩图版飞机大战(附源码 可供大作业练习使用)

源码请点赞关注收藏后评论区留言或私信博主 演示视频已上传到我的主页 有需要者可自行观看 演示视频如下&#xff1a; 飞机大战接下来先介绍一下游戏的玩法 在PyCharm中运行《彩图版飞机大战》即可进入如图1所示的游戏界面。 具体的操作步骤如下&#xff1a; &#xff08;1&…

Android Native APP开发笔记:多线程编程

文章目录目的Java中的多线程ThreadRunnableTimerAndroid中的多线程HandlerAsyncTask总结目的 Android中UI线程对于开发者和用户来说都是最主要接触到的线程。一般来说为了UI流畅、不卡顿&#xff0c;耗时操作是不推荐放在UI线程中的。但是耗时操作的需求又是存在的&#xff0c…

Spring Cloud(八):Spring Cloud Alibaba Seata 2PC、AT、XA、TCC

事务简介 分布式事务&#xff1a;https://www.processon.com/view/link/61cd52fb0e3e7441570801ab 本地事务 JDBC 事务模式 Connection conn ... //获取数据库连接 conn.setAutoCommit(false); //开启事务 try{//...执行增删改查sqlconn.commit(); //提交事务 }catch (Exce…

【C++学习】日期类和内存管理

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《C学习》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; 日期类的实现和内存管理&#x1f3ec;日期类的实现&#x1f3ec;C/C内存分布&#x1f3ec;C内存管理方…

【工具】Git-码农“吃饭的碗”要拿好

汝之观览&#xff0c;吾之幸也&#xff01;本文主要讲解的是Git的轻巧使用&#xff08;创建、下载、上传、更新、回退&#xff09;&#xff0c;我们平常都是通过idea自带的git工具&#xff0c;或者其他工具来拉取提交代码&#xff0c;这里主要用命令行的方式拉取代码&#xff0…

基于springboot+vue的心理预约咨询测试交流小程序

&#x1f496;&#x1f496;作者&#xff1a;IT跃迁谷毕设展 &#x1f499;&#x1f499;个人简介&#xff1a;曾长期从事计算机专业培训教学&#xff0c;本人也热爱上课教学&#xff0c;语言擅长Java、微信小程序、Python、Golang、安卓Android等。平常会做一些项目定制化开发…

【REST系列】详解REST架构风格 —— 带你阅读Web发展史上的一个重要技术文献

文章目录REST详解词组解释论文摘要REST架构约束一、Client–server&#xff1a;客户端-服务器二、Stateless&#xff1a;无状态三、Cacheability&#xff1a;缓存四、⭐Uniform Interface&#xff1a;统一接口 (RESTful API)五、Layered System&#xff1a;分层系统六、Code-On…

荧光生物标记物510758-19-7,5-羧基荧光素-炔烃,5-FAM alkyne

5-FAM-Alkyne 是一种高选择性和灵敏的荧光生物标记物&#xff0c;可用于标记碱性磷酸酶 (ALP)。炔烃可以通过铜催化的点击化学与多种叠氮化合物共轭。&#xff08;西安凯新生物科技有限公司​所有的试剂仅用于科研实验&#xff0c;不可用于人体试验&#xff09; 5-FAM Alkyne …

【Hadoop】P2 Hadoop简介

Hadoop是什么 Hadoop为分布式系统基础框架。主要解决海量数据的存储和海量数据的分析计算问题。 大数据解决的是海量数据的采集、存储和计算。 Hadoop三大发行版本 Apache 最原始最基础的版本&#xff0c;2006年诞生&#xff0c;开源&#xff1b; Cloudera 内部封装Apache&am…

HTML中华传统文化题材网页《中国民间年画》HTML+CSS+JavaScript

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

Redis网络模型-IO多路复用

Redis网络模型-IO多路复用 系统IO交互 IO多路复用概念 文件描述符&#xff08;File Descriptor):简称FD&#xff0c;是一个从O开始递增的无符号整数&#xff0c;用来关联Linux中的一个文件。在Linux中&#xff0c;一切皆文件&#xff0c;例如常规文件、视频、硬件设备等&…