推薦一個不到2MB的C#開發工具箱,集成了上千個常用操作類

今天給大家推薦一個C#開發工具箱,涵蓋了所有常用操作類,體積小、功能強大。

專案簡介

C# 開發工具箱。

大都是靜態類,加密解密,反射操作,權重隨機篩選演算法,分散式短id,表示式樹,linq擴充套件,檔案壓縮,多執行緒下載和FTP客戶端,硬體資訊,字串擴充套件方法,日期時間擴充套件操作,中國農曆,大檔案複製,影象裁剪,驗證碼,斷點續傳,集合擴充套件、Excel匯出等常用封裝。

諸多功能集一身,程式碼量不到2MB!

推薦一個不到2MB的C#開發工具箱,集成了上千個常用操作類

技術架構

開發工具:VisualStudio2019

SDK:。Net Core 2。1。0

專案結構

推薦一個不到2MB的C#開發工具箱,集成了上千個常用操作類

特色功能示例

字串格式校驗

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); // 7clziConsole。WriteLine(“36進位制的7clzi是:” + num); // 12345678var s = new NumberFormater(62)。ToString(new Random()。Next(100000, int。MaxValue)); //配合隨機數生成隨機字串

唯一ID生成

var token=Stopwatch。GetTimestamp()。ToBinary(36);

var set = new HashSet();double time = HiPerfTimer。Execute(() =>{for (int i = 0; i < 1000000; i++){set。Add(Stopwatch。GetTimestamp()。ToBinary(36));}});Console。WriteLine(set。Count==1000000);//TrueConsole。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();// MD5var 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摘要

原始碼地址

私信回覆:1033