C#-通用工具方法汇总

C#-通用工具方法汇总-杂篇

1- 将汉字转化成首拼

#region 将汉字转化成首拼 
/// <summary>
/// 获取首字母
/// </summary>
public static string GetFristOne(string name)
{
    string strTemp = "";
    int iLen = name.Length;

    for (int i = 0; i <= iLen - 1; i++)
    {
        if (!Regex.IsMatch(name.Substring(i, 1), @"[\u4E00-\u9FA5]+$"))
        {
            continue;
        }
        strTemp += GetCharSpellCode(name.Substring(i, 1));
    }
    return strTemp;
}
/// <summary>
/// 单个字符转化
/// </summary>
private static string GetCharSpellCode(string c)
{
    char Initial = Convert.ToChar(c.Substring(0, 1));//得出首字母
    ChineseChar chn = new ChineseChar(Initial);
    string Initial1 = chn.Pinyins[0].Substring(0, 1);
    return Initial1;
}
#endregion

2- 字符数组 <=> 字符串

#region 字符数组 <=> 字符串
/// <summary>
/// 数组转换成单个字符串
/// </summary>
/// <param name="strs">被分割字符串</param>
/// <param name="split">分割字符</param>
/// <returns></returns>
public static string ListToString1(List<string> strs, char split)
{
    string res = "";
    foreach (string str in strs)
    {
        if (string.IsNullOrEmpty(res))
            res = str;
        else
            res = res + split + str;
    }
    return res;
}
/// <summary>
/// 单个字符串转换成数组
/// </summary>
/// <param name="str">被分割字符串</param>
/// <param name="split">分割字符</param>
/// <returns></returns>
public static List<string> StringToList1(string str,char split)
{
    if (!string.IsNullOrEmpty(str))
    {
        string[] arr = str.Split(split);//分割字符串
        return new List<string>(arr);
    }
    else
        return new List<string>();
}
#endregion

3- 字符串转数字

/// <summary>
/// 字符串转数字
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static double StringToNum(string str)
{
    if (string.IsNullOrEmpty(str))//字符为空
    {
        str = "0";
        return Convert.ToDouble(str);
    }
    else if (!str.Contains("."))//字符不为空且不包含小数点
    {
        string strnum = Regex.Replace(str, @"[^\d]", "");
        //string strnum = Regex.Replace(str, @"[^0-9]+", "");
        if (string.IsNullOrEmpty(strnum))
        {
            strnum = "0";
        }
        return Convert.ToDouble(strnum);
    }
    else
    {//字符不为空且包含小数点
        string strnum = Regex.Replace(str, @"[^\d.\d]", "");
        return Convert.ToDouble(strnum);
    }
}

4- 分页

#region 将 任意类的列表(Lists) 分(OneNum)页
/// <summary>
/// 将 任意List 分页 
/// </summary>
/// <param name="Lists">需要分页的列表</param>
/// <param name="PageSize">每一页的数量</param>
/// <param name="PageNum">页数</param>
public static List<T> ListToPage<T>(List<T> Lists, int PageSize, int PageNum)
{
    List<T> ts = Lists.Skip((PageNum - 1) * PageSize).Take(PageSize).ToList();
    return ts;
}
#endregion
//分页返回对象
public class PageOutput<T>
{
    /// <summary>
    /// 数组
    /// </summary>
    public List<T> List { get; set; }
    /// <summary>
    /// 总数
    /// </summary>
    public int Count { get; set; }
    public PageOutput()
    {
        List = new List<T>();
    }
    public PageOutput(List<T> list, int pageNum, int pageSize)
    {
        Count = list.Count;
        List = (ToolClass).ListToPage(list, pageNum, pageSize);
    }
}

5- 对象去重

/// <summary>
/// 对象去重
/// </summary>
/// <typeparam name="T"></typeparam>
public class LambdaComparer<T> : IEqualityComparer<T>
{
    //对象去重使用
    //.Distinct(new LambdaComparer<MuchSelect>((a, b) => a.Value == b.Value, obj => obj.ToString().GetHashCode())).ToList();
    private readonly Func<T, T, bool> _lambdaComparer;
    private readonly Func<T, int> _lambdaHash;
    public LambdaComparer(Func<T, T, bool> lambdaComparer)
    : this(lambdaComparer, EqualityComparer<T>.Default.GetHashCode)
    {
    }
    public LambdaComparer(Func<T, T, bool> lambdaComparer, Func<T, int> lambdaHash)
    {
        if (lambdaComparer == null)
            throw new ArgumentNullException("lambdaComparer");
        if (lambdaHash == null)
            throw new ArgumentNullException("lambdaHash");
        _lambdaComparer = lambdaComparer;
        _lambdaHash = lambdaHash;
    }

    public bool Equals(T x, T y)
    {
        return _lambdaComparer(x, y);
    }

    public int GetHashCode(T obj)
    {
        return _lambdaHash(obj);
    }
}

6- 序列化与反序列化示例

//序列化与反序列化
//List<FileDto> list1 = (略);
//string list2 = JsonConvert.SerializeObject(list1);//序列化
//List<FileDto> list3 = JsonConvert.DeserializeObject<List<FileDto>>(list2);//反序列化

7- base64编码和解码

/// <summary>
/// base64编码
/// </summary>
/// <param name="code_type">编码类型</param>
/// <param name="code">待编码的字符串</param>
/// <returns></returns>
public static string EncodeBase64(string code_type, string code)
{
    string encode = "";
    byte[] bytes = Encoding.GetEncoding(code_type).GetBytes(code);
    try
    {
        encode = Convert.ToBase64String(bytes);
    }
    catch
    {
        encode = code;
    }
    return encode;
}
/// <summary>
/// base64解码
/// </summary>
/// <param name="code_type">编码类型</param>
/// <param name="code">待编码的字符串</param>
/// <returns>编码后的字符串</returns>
public static string DecodeBase64(string code_type, string code)
{
    string decode = "";
    byte[] bytes = Convert.FromBase64String(code);
    try
    {
        decode = Encoding.GetEncoding(code_type).GetString(bytes);
    }
    catch
    {
        decode = code;
    }
    return decode;
}

8- 去除HTML标签

/// <summary>
/// 去除HTML标签 前端是富文本编辑器时可能会需要使用
/// </summary>
/// <param name="html"></param>
/// <returns></returns>
public static string RemoveHTMLTags(string html)
{
    //html = "<div><p>1、测试</p><p>2、测试</p><p>3、测试</p><div>";
    //需要去除后得到的值=>1、测试2、测试3、测试
    string strText = Regex.Replace(html, "<[^>]+>", "");
    strText = Regex.Replace(strText, "&[^;]+;", "");
    return strText;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值