码迷,mamicode.com
首页 > Windows程序 > 详细

【C#】通用辅助方法

时间:2019-05-24 01:10:01      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:builder   arp   temp   汉字   trick   lse   转换   inpu   enc   

1、将字符转换为日期格式

public static string GetTime(this string timeStamp)
{
     //处理字符串,截取括号内的数字
     var strStamp = Regex.Matches(timeStamp, @"(?<=\()((?<gp>\()|(?<-gp>\))|[^()]+)*(?(gp)(?!))").Cast<Match>().Select(t => t.Value).ToArray()[0].ToString();
     //处理字符串获取+号前面的数字
     var str = Convert.ToInt64(strStamp.Substring(0, strStamp.IndexOf("+")));
     long timeTricks = new DateTime(1970, 1, 1).Ticks + str * 10000 + TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now).Hours * 3600 * (long)10000000;
     return new DateTime(timeTricks).ToString("yyyy-MM-dd HH:mm:ss");
}

2、请求字符串拼接

public static string GetQueryString<T>(T t)
{
    PropertyInfo[] attributes = t.GetType().GetProperties();
    StringBuilder sb = new StringBuilder("?");

    foreach (PropertyInfo p in attributes)
    {
        if (sb.ToString().Split(‘&‘).Length > 1)
        {
            sb.Append($"&{p.Name}={p.GetValue(t)}");
        }
        else
        {
            sb.Append($"{p.Name}={p.GetValue(t)}");
        }
    }
    return sb.ToString();
}

3、把字符串按照分隔符转换成 List

public static List<string> GetStrArray(this string str, char speater, bool toLower)
{
    if (string.IsNullOrEmpty(str)) return null;

    List<string> list = new List<string>();
    string[] ss = str.Split(speater);
    foreach (string s in ss)
    {
        if (!string.IsNullOrEmpty(s) && s != speater.ToString())
        {
            string strVal = s;
            if (toLower)
            {
                strVal = s.ToLower();
            }
            list.Add(strVal);
        }
    }
    return list;
}

  

4、从包含中英文的字符串中截取固定长度的一段,inputString为传入字符串,len为截取长度(一个汉字占两个位)。

public static string CutString(this string inputString, int len)
{
    if (inputString == null || inputString == "")
    {
        return "";
    }

    inputString = inputString.Trim();
    byte[] myByte = System.Text.Encoding.Default.GetBytes(inputString);
    if (myByte.Length > len)
    {
        string result = "";
        for (int i = 0; i < inputString.Length; i++)
        {
            byte[] tempByte = System.Text.Encoding.Default.GetBytes(result);
            if (tempByte.Length < len)
            {
                result += inputString.Substring(i, 1);
            }
            else
            {
                break;
            }
        }
        return result + "...";
    }
    else
    {
        return inputString;
    }
}

  

5、获取枚举的description的值

public static string GetEnumDescript<T>(T e) where T : struct
{
    FieldInfo EnumInfo = e.GetType().GetField(e.ToString());
    DescriptionAttribute[] EnumAttributes = (DescriptionAttribute[])EnumInfo.
        GetCustomAttributes(typeof(DescriptionAttribute), false);
    return EnumAttributes[0].Description;
}

  

  

 

【C#】通用辅助方法

标签:builder   arp   temp   汉字   trick   lse   转换   inpu   enc   

原文地址:https://www.cnblogs.com/Seven77yixuan/p/10895711.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!