C#通用辅助方法

Posted seven77yixuan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#通用辅助方法相关的知识,希望对你有一定的参考价值。

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#通用辅助方法的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin.Forms XAML的辅助功能Code Snippet

Eclipse 中的通用代码片段或模板

实现 C# 通用超时

C# 最有用的(自定义)代码片段是啥? [关闭]

c#代码片段快速构建代码

此 Canon SDK C++ 代码片段的等效 C# 代码是啥?