c# 常用 Common

摘要:
//////md5加密字符串////////publicstaticStringToMD5(thisStringmessage){MD5md5=newMD5CryptoServiceProvider();byte[]result=Encoding.UTF8.Get
        /// <summary>
        ///  md5加密字符串
        /// </summary>
        /// <param name="message"></param>
        /// <returns></returns>
        public static String ToMD5(this String message)
        {
            MD5 md5 = new MD5CryptoServiceProvider();
            byte[] result = Encoding.UTF8.GetBytes(message);
            byte[] outStr = md5.ComputeHash(result);
            string md5string = BitConverter.ToString(outStr).Replace("-", "");
            return md5string;
        }
        /// <summary>
        /// 按字节数截取字符串的方法
        /// </summary>
        /// <param name="source">要截取的字符串(可空)</param>
        /// <param name="NumberOfBytes">要截取的字节数</param>
        /// <param name="encoding">System.Text.Encoding</param>
        /// <param name="suffix">结果字符串的后缀(超出部分显示为该后缀)</param>
        /// <returns></returns>
        public static string SubStringByBytes(this string source, int NumberOfBytes, System.Text.Encoding encoding, string suffix = "")
        {
            if (string.IsNullOrWhiteSpace(source) || source.Length == 0)
                return source;

            if (encoding.GetBytes(source).Length <= NumberOfBytes)
                return source;

            long tempLen = 0;
            StringBuilder sb = new StringBuilder();
            foreach (var c in source)
            {
                Char[] _charArr = new Char[] { c };
                byte[] _charBytes = encoding.GetBytes(_charArr);
                if ((tempLen + _charBytes.Length) > NumberOfBytes)
                {
                    if (!string.IsNullOrWhiteSpace(suffix))
                        sb.Append(suffix);
                    break;
                }
                else
                {
                    tempLen += _charBytes.Length;
                    sb.Append(encoding.GetString(_charBytes));
                }
            }
            return sb.ToString();
        }
        /// <summary>
        /// 复制一个对象
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="info"></param>
        /// <returns></returns>
        public static T Copy<T>(T info) where T : new()
        {
            string json = JsonHelper.SerializeObject(info);
            return JsonConvert.DeserializeObject<T>(json);
        }
        /// <summary>
        /// 对象转Json字符串
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="data"></param>
        /// <returns></returns>
        public static string ToJson<T>(T data) where T : new()
        {
            return JsonHelper.SerializeObject(data);
        }
        /// <summary>
        /// 实体类转Dictionary
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="info"></param>
        /// <returns></returns>
        public static Dictionary<string,string> ModelToDictionary<T>(this T info)
        {
            Dictionary<string, string> dic = new Dictionary<string, string>();
            foreach (PropertyInfo pro in typeof(T).GetProperties())
            {
                string value = pro.GetValue(info, null)?.ToString();
                string name = pro.Name;
                if (string.IsNullOrEmpty(value)) continue;
                if (name == "Type") continue;
                dic.Add(name, value);
            }
            return dic;
        }
        /// <summary>
        /// string扩展 rgb 转SolidColorBrush
        /// </summary>
        /// <param name="rgb"></param>
        /// <returns></returns>
        public static System.Windows.Media.SolidColorBrush ToSolidColorBrush(this string rgb)
        {
            try
            {
                return new System.Windows.Media.SolidColorBrush((System.Windows.Media.Color)System.Windows.Media.ColorConverter.ConvertFromString(rgb));
            }
            catch (Exception)
            {
                return System.Windows.Media.Brushes.Red;
            }
        }

 示例:"#999999".ToSolidColorBrush()

原文:https://www.cnblogs.com/zisai/p/11050749.html 

免责声明:文章转载自《c# 常用 Common》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇WindowXP与WIN7环境安装、破解、配置AppScan8.0使用 C++ 处理 JSON 数据交换格式 .下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

vb.net的数据类型

一,Numeric(数值型)数据类型 Integer 整型 4字节 变量存储为32位整数型,范围从-2147483.648至2147483.648 Long 长整型 8字节 变量存储为64位整数型,范围从-9223372036854775.808至9223372036854775.807 Short 短整型 2字节 变量存储为16位整数型,范围...

Apache POI Java读取100万行Excel性能优化:split vs indexOf+subString,谁性能好

使用Apache POI eventmodel实现一个Excel流式读取类,目标是100万行,每行46列,文件大小152MB的Excel文件能在20s读取并处理完。一开始实现的程序需要260s,离目标差太远了,使用jvisualvm分析各方法执行时间,结果如下: 可以看到,程序中的splitLine和getRowNum方法消耗了大量时间。这两个方法都特别...

如何自定义MVC控件?

今天公司要写学习总结,想着想着还是先写一篇关于MVC内部什么东东的博客整理整理再发表吧,一举两得。 之前写过了路由、过滤器等。今天就研究一下怎么自定义MVC控件吧。 本人技术小菜,不喜勿喷。。。。。(说这句话通常有两种情况,一种是牛人谦虚的说法,一种是怕受伤害提前准备个挡箭牌) 首先我们先去熟知一下MVC内部的那些控件是怎么实现的。 首先,Input标签是...

redis-缓存设计-记录前一个小时和最新的日志

需求 记录最新的日志 99条 同时记录上一个小时和最近一个小时的 日志出现次数 记录日志代码 /** * * @param conn 连接 * @param name 模块名字 * @param message 日志信息 * @param level 日志等级 * @param timeout...

Java中将String格式的标准时间字符串转换为Date格式的方法

场景 前端在往后端传递时间参数时,传递的是标准时间格式的字符串。 比如下面的lxyf参数 怎样将其转换为Date格式。 注: 博客:https://blog.csdn.net/badao_liumang_qizhi关注公众号霸道的程序猿获取编程相关电子书、教程推送与免费下载。 实现 调用如下转换格式的方法 Date lxyfDate = str2Date...

spring-boot-route 读取配置文件的几种方式

Spring Boot提供了两种格式的配置文件,分别是properties 和 yml。Spring Boot最大的特点就是自动化配置,如果我们想修改自动化配置的默认值,就可以通过配置文件来指定自己服务器相关的参数。 配置文件集约管理了配置信息,如果把配置参数写到Java代码中,维护起来非常不方便,如果使用配置文件,我们可以统一管理,统一修改。我比较推荐使...