今天大姚給大家分享一個C#開源(MIT License)、免費、實用且強大的工具類庫,集成超過1000多種擴展方法增強 .NET Framework 和 .NET Core的使用效率:Z.ExtensionMethods。
在你的對應項目中NuGet包管理器中搜索:Z.ExtensionMethods安裝即可使用。
支持.NET Standard 2.0和.NET Framework 4.0 。
圖片
圖片
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(); } }}
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); } } } }}
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/
圖片
搜索ToMD5Hash:
圖片
使用.NET Fiddle在線演示:
本文鏈接:http://www.tebozhan.com/showinfo-26-91685-0.htmlC#開源實用的工具類庫,集成超過1000多種擴展方法
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com
上一篇: 面試官:說說Netty核心組件?
下一篇: 尤雨溪:這個前端經典輪子值得去造!