日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

C#開源實用的工具類庫,集成超過1000多種擴展方法

來源: 責編: 時間:2024-05-30 09:11:21 252觀看
導讀前言今天大姚給大家分享一個C#開源(MIT License)、免費、實用且強大的工具類庫,集成超過1000多種擴展方法增強 .NET Framework 和 .NET Core的使用效率:Z.ExtensionMethods。直接項目引入類庫使用在你的對應項目中NuGet包

前言

今天大姚給大家分享一個C#開源(MIT License)、免費、實用且強大的工具類庫,集成超過1000多種擴展方法增強 .NET Framework 和 .NET Core的使用效率:Z.ExtensionMethods。KaN28資訊網——每日最新資訊28at.com

直接項目引入類庫使用

在你的對應項目中NuGet包管理器中搜索:Z.ExtensionMethods安裝即可使用。KaN28資訊網——每日最新資訊28at.com

支持.NET Standard 2.0和.NET Framework 4.0 。KaN28資訊網——每日最新資訊28at.com

圖片圖片KaN28資訊網——每日最新資訊28at.com

項目源代碼

圖片圖片KaN28資訊網——每日最新資訊28at.com

部分擴展方法展示

MD5哈希算法

public static partial class Extensions{    /// <summary>    /// A Stream extension method that converts the @this to a md 5 hash.    /// </summary>    /// <param name="this">The @this to act on.</param>    /// <returns>@this as a string.</returns>    public static string ToMD5Hash(this Stream @this)    {        using (MD5 md5 = MD5.Create())        {            byte[] hashBytes = md5.ComputeHash(@this);            var sb = new StringBuilder();            foreach (byte bytes in hashBytes)            {                sb.Append(bytes.ToString("X2"));            }            return sb.ToString();        }    }}

解壓GZip字節數組

public static partial class Extensions{    /// <summary>    /// A byte[] extension method that decompress the byte array gzip to string.    /// </summary>    /// <param name="this">The @this to act on.</param>    /// <returns>The byte array gzip to string.</returns>    public static string DecompressGZip(this byte[] @this)    {        const int bufferSize = 1024;        using (var memoryStream = new MemoryStream(@this))        {            using (var zipStream = new GZipStream(memoryStream, CompressionMode.Decompress))            {                // Memory stream for storing the decompressed bytes                using (var outStream = new MemoryStream())                {                    var buffer = new byte[bufferSize];                    int totalBytes = 0;                    int readBytes;                    while ((readBytes = zipStream.Read(buffer, 0, bufferSize)) > 0)                    {                        outStream.Write(buffer, 0, readBytes);                        totalBytes += readBytes;                    }                    return Encoding.Default.GetString(outStream.GetBuffer(), 0, totalBytes);                }            }        }    }    /// <summary>    /// A byte[] extension method that decompress the byte array gzip to string.    /// </summary>    /// <param name="this">The @this to act on.</param>    /// <param name="encoding">The encoding.</param>    /// <returns>The byte array gzip to string.</returns>    public static string DecompressGZip(this byte[] @this, Encoding encoding)    {        const int bufferSize = 1024;        using (var memoryStream = new MemoryStream(@this))        {            using (var zipStream = new GZipStream(memoryStream, CompressionMode.Decompress))            {                // Memory stream for storing the decompressed bytes                using (var outStream = new MemoryStream())                {                    var buffer = new byte[bufferSize];                    int totalBytes = 0;                    int readBytes;                    while ((readBytes = zipStream.Read(buffer, 0, bufferSize)) > 0)                    {                        outStream.Write(buffer, 0, readBytes);                        totalBytes += readBytes;                    }                    return encoding.GetString(outStream.GetBuffer(), 0, totalBytes);                }            }        }    }}

將泛型數組轉換為DataTable

public static partial class Extensions{    /// <summary>    /// A T[] extension method that converts the @this to a data table.    /// </summary>    /// <typeparam name="T">Generic type parameter.</typeparam>    /// <param name="this">The @this to act on.</param>    /// <returns>@this as a DataTable.</returns>    public static DataTable ToDataTable<T>(this T[] @this)    {        Type type = typeof (T);        PropertyInfo[] properties = type.GetProperties(BindingFlags.Public | BindingFlags.Instance);        FieldInfo[] fields = type.GetFields(BindingFlags.Public | BindingFlags.Instance);        var dt = new DataTable();        foreach (PropertyInfo property in properties)        {            dt.Columns.Add(property.Name, property.PropertyType);        }        foreach (FieldInfo field in fields)        {            dt.Columns.Add(field.Name, field.FieldType);        }        foreach (T item in @this)        {            DataRow dr = dt.NewRow();            foreach (PropertyInfo property in properties)            {                dr[property.Name] = property.GetValue(item, null);            }            foreach (FieldInfo field in fields)            {                dr[field.Name] = field.GetValue(item);            }            dt.Rows.Add(dr);        }        return dt;    }}

支持在線搜索和演示

在線地址:https://csharp-extension.com/en/online-example/KaN28資訊網——每日最新資訊28at.com

圖片圖片KaN28資訊網——每日最新資訊28at.com

搜索ToMD5Hash:KaN28資訊網——每日最新資訊28at.com

圖片圖片KaN28資訊網——每日最新資訊28at.com

使用.NET Fiddle在線演示:KaN28資訊網——每日最新資訊28at.com

圖片 圖片 KaN28資訊網——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-91685-0.htmlC#開源實用的工具類庫,集成超過1000多種擴展方法

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 面試官:說說Netty核心組件?

下一篇: 尤雨溪:這個前端經典輪子值得去造!

標簽:
  • 熱門焦點
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
国产精品久久久久999| 性欧美办公室18xxxxhd| 在线成人激情黄色| 亚洲第一网站免费视频| 亚洲国产欧美久久| 亚洲视频一二区| 欧美一区二区三区在线观看 | 亚洲影视在线播放| 欧美亚洲综合在线| 麻豆精品一区二区av白丝在线| 欧美高清视频免费观看| 欧美午夜精品久久久久久浪潮 | 国产主播一区二区三区四区| 狠狠爱成人网| 日韩亚洲在线观看| 欧美一级专区免费大片| 奶水喷射视频一区| 国产精品成av人在线视午夜片| 国产色爱av资源综合区| 亚洲国产一区二区视频| 亚洲一区二区三区色| 久久久久国产精品一区三寸| 欧美日产国产成人免费图片| 国产日韩高清一区二区三区在线| 亚洲第一偷拍| 欧美亚洲一区三区| 欧美乱在线观看| 国产一区二区三区不卡在线观看| 亚洲激情一区二区| 亚洲欧美日韩人成在线播放| 美女被久久久| 国产欧美综合在线| 亚洲久色影视| 久久精品视频在线| 国产精品video| 亚洲国产日韩欧美综合久久 | 午夜精品久久久久久久99热浪潮| 欧美成人日韩| 国产一区二区三区日韩| 99精品国产热久久91蜜凸| 久久久午夜电影| 国产精品日韩高清| 日韩香蕉视频| 美女网站久久| 国产视频一区欧美| 宅男噜噜噜66一区二区| 欧美~级网站不卡| 国产精品欧美日韩| 国产欧美日韩亚洲| 久久香蕉国产线看观看av| 欧美极品欧美精品欧美视频| 国产精品夜夜夜| 一区二区三区高清在线| 久久精品毛片| 国产精自产拍久久久久久| 亚洲最新在线视频| 久久精品午夜| 国产精品视频自拍| 久久九九热免费视频| 国产自产女人91一区在线观看| 欧美激情第9页| 欧美1区3d| 欧美精品一卡二卡| 国产欧美一区二区三区久久| 亚洲丰满在线| 亚洲自拍偷拍色片视频| 久久精品2019中文字幕| 久热精品在线| 精品成人在线观看| 欧美大片在线观看| 日韩午夜精品| 国产精品久久久对白| 欧美在线一区二区三区| 日韩亚洲视频在线| 在线成人免费视频| 国产欧美日韩免费| 欧美肉体xxxx裸体137大胆| 欧美中文字幕| 午夜电影亚洲| 精品91在线| 亚洲麻豆视频| 久久久精品视频成人| 国产欧美视频一区二区| 亚洲女性裸体视频| 国产精品久久久久久久久免费| 99精品视频免费全部在线| 欧美精品亚洲二区| 一区二区三区 在线观看视频| 欧美精品在线观看91| 亚洲精品黄色| 欧美区在线播放| 欧美久久电影| 欧美日韩国产一区精品一区 | 欧美日韩一区二区三| 欧美亚洲不卡| 老司机亚洲精品| 久久综合福利| 亚洲第一中文字幕| 久久综合九色综合欧美狠狠| 国产视频综合在线| 久久久无码精品亚洲日韩按摩| 激情婷婷欧美| 美女亚洲精品| 日韩视频中文字幕| 欧美图区在线视频| 亚洲男人的天堂在线观看| 国产免费观看久久| 久久久噜噜噜久噜久久| 亚洲国产精品久久久久婷婷老年 | 久久一区免费| 最新亚洲激情| 欧美日韩一区二区三区四区五区| 99国产精品一区| 国产精品亚洲成人| 久久久久青草大香线综合精品| 在线国产欧美| 欧美精品v国产精品v日韩精品| 亚洲日本一区二区| 国产精品老女人精品视频| 久久av资源网站| 亚洲高清不卡一区| 欧美日韩中文字幕| 欧美综合第一页| 亚洲日本理论电影| 国产精品日韩电影| 乱码第一页成人| 亚洲视频观看| 影音先锋一区| 欧美午夜在线一二页| 久久国内精品自在自线400部| 亚洲国产99| 国产精品成人一区二区| 久久精品一二三区| 日韩一级精品| 国产在线一区二区三区四区| 欧美精品1区2区| 欧美亚洲一级| 亚洲精品免费一二三区| 国产精品自拍在线| 欧美国产日韩亚洲一区| 欧美亚洲视频在线看网址| 亚洲精品在线视频| 国产亚洲精品久久久久婷婷瑜伽| 欧美经典一区二区三区| 久久高清福利视频| 一区二区三区av| 一区免费在线| 国产精品女人久久久久久| 嫩草影视亚洲| 欧美在线视频导航| 国产精品99久久不卡二区| 雨宫琴音一区二区在线| 国产精品视频一二| 欧美日韩a区| 可以免费看不卡的av网站| 亚洲综合色视频| 亚洲精品一区二区三区不| 国内精品嫩模av私拍在线观看 | 亚洲综合国产激情另类一区| 亚洲第一福利在线观看| 国产伦精品一区二区三区视频孕妇 | 99精品欧美一区| 在线观看日韩www视频免费| 国产精品久久久久久久9999 | 欧美成人一二三| 久久福利资源站| 亚洲免费在线精品一区| 亚洲精品美女免费| 伊人男人综合视频网| 国产日韩在线看片| 国产精品扒开腿做爽爽爽软件| 欧美二区不卡| 久久天天躁夜夜躁狠狠躁2022 | 久久久国产精品一区二区三区| 亚洲视频1区| 日韩亚洲欧美成人一区| 亚洲电影av在线| 国产专区欧美精品| 国产欧美短视频| 国产精品久久久久久久久久直播 | 欧美电影打屁股sp| 久久久女女女女999久久| 欧美一区二区三区免费在线看| 亚洲视频你懂的| 一区二区高清视频在线观看| 亚洲日本电影| 亚洲国产综合在线| 亚洲二区在线视频| 136国产福利精品导航网址| 国内视频一区| 国产一区视频网站| 国产一区二区你懂的| 国产日韩在线播放| 亚洲国产精品日韩| 亚洲成色777777女色窝| 国产综合欧美| 国产一区二区三区在线观看网站| 国产精品一区2区| 国产伦精品一区二区三区在线观看| 国产精品福利在线观看| 国产精品九九| 国产伦精品一区二区三区| 国产午夜精品视频| 国产一区二区三区四区|