|
|
@@ -1,6 +1,7 @@
|
|
|
|
|
|
using Microsoft.IdentityModel.Tokens;
|
|
|
using Newtonsoft.Json;
|
|
|
+using System.Net;
|
|
|
using System.Security.Cryptography;
|
|
|
using System.Text;
|
|
|
using System.Text.RegularExpressions;
|
|
|
@@ -12,7 +13,622 @@ namespace YSAI.Unility
|
|
|
/// </summary>
|
|
|
public static class ExtensionTool
|
|
|
{
|
|
|
+ /// <summary>
|
|
|
+ /// 生成新的GUID(有的需要生成连续的Guid,所以统一调用这里的方法)
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static Guid NewGuid()
|
|
|
+ {
|
|
|
+ return Guid.NewGuid();
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 判断为空GUID
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="guid"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static bool IsEmptyGuid(this Guid guid)
|
|
|
+ {
|
|
|
+ return guid == Guid.Empty;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 判断为空GUID
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="guid"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static bool IsEmptyGuid(this Guid? guid)
|
|
|
+ {
|
|
|
+ return !guid.HasValue || guid.Value == Guid.Empty;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 判断不为空GUID
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="guid"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static bool IsNotEmptyGuid(this Guid guid)
|
|
|
+ {
|
|
|
+ return guid != Guid.Empty;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 判断不为NULL和空GUID
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="guid"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static bool IsNotEmptyGuid(this Guid? guid)
|
|
|
+ {
|
|
|
+ return guid.HasValue && guid.Value != Guid.Empty;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 将GUID转换为整数
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="guid"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static int ToInt(this Guid guid)
|
|
|
+ {
|
|
|
+ return Math.Abs(guid.GetHashCode());
|
|
|
+ //byte[] buffer = guid.ToByteArray();
|
|
|
+ //return BitConverter.ToInt32(buffer, 0);
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 转换GUID为大写字符串
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="guid"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static string ToUpperString(this Guid guid)
|
|
|
+ {
|
|
|
+ return guid.ToString().ToUpper();
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 转换guid为小写字符串
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="guid"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static string ToLowerString(this Guid guid)
|
|
|
+ {
|
|
|
+ return guid.ToString().ToLower();
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 没有分隔线的字符串
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="guid"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static string ToNString(this Guid guid)
|
|
|
+ {
|
|
|
+ return guid.ToString("N");
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 没有分隔线的小写字符串
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="guid"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static string ToLowerNString(this Guid guid)
|
|
|
+ {
|
|
|
+ return guid.ToString("N").ToLower();
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 没有分隔线的大写字符串
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="guid"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static string ToUpperNString(this Guid guid)
|
|
|
+ {
|
|
|
+ return guid.ToString("N").ToUpper();
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 将int转换为GUID
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="i">111</param>
|
|
|
+ /// <returns>00000000-0000-0000-0000-000000000111</returns>
|
|
|
+ public static Guid ToGuid(this int i)
|
|
|
+ {
|
|
|
+ return i.ToString().PadLeft(32, '0').ToGuid();
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 将long转换为GUID
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="i">111</param>
|
|
|
+ /// <returns>00000000-0000-0000-0000-000000000111</returns>
|
|
|
+ public static Guid ToGuid(this long i)
|
|
|
+ {
|
|
|
+ return i.ToString().PadLeft(32, '0').ToGuid();
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 将GUID转换为int
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="guid">00000000-0000-0000-0000-000000000111 的GUID</param>
|
|
|
+ /// <returns>111</returns>
|
|
|
+ public static int ToInteger(this Guid guid)
|
|
|
+ {
|
|
|
+ return guid.ToNString().TrimStart('0').ToInt();
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 将GUID转换为long
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="guid">00000000-0000-0000-0000-000000000111 的GUID</param>
|
|
|
+ /// <returns>111</returns>
|
|
|
+ public static long ToLong(this Guid guid)
|
|
|
+ {
|
|
|
+ return guid.ToNString().TrimStart('0').ToLong();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 格式化为长日期格式(yyyy年M月d日)
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="date"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static string ToLongDate(this DateTime date)
|
|
|
+ {
|
|
|
+ return date.ToString("yyyy年M月d日");
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 格式化为长日期格式(yyyy年MM月dd日)
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="date"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static string ToLongDate1(this DateTime date)
|
|
|
+ {
|
|
|
+ return date.ToString("yyyy年MM月dd日");
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 格式化为日期格式(yyyy-MM-dd)
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="date"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static string ToDateString(this DateTime date)
|
|
|
+ {
|
|
|
+ return date.ToString("yyyy-MM-dd");
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 格式化为日期时间格式(yyyy-MM-dd HH:mm:ss)
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="date"></param>
|
|
|
+ public static string ToDateTimeString(this DateTime date)
|
|
|
+ {
|
|
|
+ return date.ToString("yyyy-MM-dd HH:mm:ss");
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 格式化为日期时间格式(yyyy-MM-dd HH:mm)
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="date"></param>
|
|
|
+ public static string ToShortDateTimeString(this DateTime date)
|
|
|
+ {
|
|
|
+ return date.ToString("yyyy-MM-dd HH:mm");
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 格式化为日期时间格式(yyyy-MM-dd HH:mm:ss)
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="date"></param>
|
|
|
+ public static string ToDateTimeString(this DateTime? date)
|
|
|
+ {
|
|
|
+ return date.HasValue ? date.Value.ToDateTimeString() : string.Empty;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 取日期时间的日期部分
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="date"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static DateTime GetDate(this DateTime date)
|
|
|
+ {
|
|
|
+ return date.ToString("yyyy-MM-dd").ToDateTime();
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 判断字符串是否为null或""
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="str"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static bool IsNullOrEmpty(this string str)
|
|
|
+ {
|
|
|
+ return string.IsNullOrEmpty(str);
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 判断字符串是否为null或""或" "(包含空字符的字符串)
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="str"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static bool IsNullOrWhiteSpace(this string str)
|
|
|
+ {
|
|
|
+ return string.IsNullOrWhiteSpace(str);
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 比较字符串区分大小写
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="str1">字符串1</param>
|
|
|
+ /// <param name="str2">字符串2</param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static bool EqualsIgnoreCase(this string str1, string str2)
|
|
|
+ {
|
|
|
+ return null == str1 ? null == str2 : str1.Equals(str2, StringComparison.CurrentCultureIgnoreCase);
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 判断字符串是否包含(不区分大不写)
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="str1"></param>
|
|
|
+ /// <param name="str2"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static bool ContainsIgnoreCase(this string str1, string str2)
|
|
|
+ {
|
|
|
+ return null == str1 || null == str2 ? false : str1.IndexOf(str2, StringComparison.CurrentCultureIgnoreCase) >= 0;
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 去除空格
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="str"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static string Trim1(this string str)
|
|
|
+ {
|
|
|
+ return str.IsNullOrEmpty() ? "" : str.Trim();
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 将字符串转换为GUID
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="str"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static Guid ToGuid(this string str)
|
|
|
+ {
|
|
|
+ return Guid.TryParse(str.Trim1(), out Guid guid) ? guid : Guid.Empty;
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 判断一个字符串是否是GUID
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="str"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static bool IsGuid(this string str)
|
|
|
+ {
|
|
|
+ return Guid.TryParse(str.Trim1(), out _);
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 判断一个字符串是否是GUID
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="str"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static bool IsGuid(this string str, out Guid guid)
|
|
|
+ {
|
|
|
+ return Guid.TryParse(str.Trim1(), out guid);
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 判断一个字符串是否是字体图标(以fa开头)
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="str"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static bool IsFontIco(this string str)
|
|
|
+ {
|
|
|
+ return str.Trim1().StartsWith("fa");
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 判断字符串是否为整数
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="str"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static bool IsInt(this string str)
|
|
|
+ {
|
|
|
+ return int.TryParse(str, out _);
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 判断字符串是否为整数
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="str"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static bool IsInt(this string str, out int i)
|
|
|
+ {
|
|
|
+ return int.TryParse(str, out i);
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 将字符串转换为整数
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="str"></param>
|
|
|
+ /// <param name="defaultValue">转换失败时的默认值</param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static int ToInt(this string str, int defaultValue = int.MinValue)
|
|
|
+ {
|
|
|
+ return int.TryParse(str, out int i) ? i : defaultValue;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 判断字符串是否是长整型
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="str"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static bool IsLong(this string str)
|
|
|
+ {
|
|
|
+ return long.TryParse(str, out _);
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 判断字符串是否是长整型
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="str"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static bool IsLong(this string str, out long l)
|
|
|
+ {
|
|
|
+ return long.TryParse(str, out l);
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 将字符串转换为长整型
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="str"></param>
|
|
|
+ /// <param name="defauleValue">转换失败后的默认值</param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static long ToLong(this string str, long defauleValue = long.MinValue)
|
|
|
+ {
|
|
|
+ return long.TryParse(str, out long l) ? l : defauleValue;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 判断字符串是否为数字
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="str"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static bool IsDecimal(this string str)
|
|
|
+ {
|
|
|
+ return decimal.TryParse(str, out _);
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 判断字符串是否为数字
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="str"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static bool IsDecimal(this string str, out decimal d)
|
|
|
+ {
|
|
|
+ return decimal.TryParse(str, out d);
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 将字符串转换为数字
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="str"></param>
|
|
|
+ /// <param name="defaultValue">转换失败时的默认值</param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static decimal ToDecimal(this string str, decimal defaultValue = decimal.MinValue)
|
|
|
+ {
|
|
|
+ return decimal.TryParse(str, out decimal d) ? d : defaultValue;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 判断字符串是否为日期时间
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="str"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static bool IsDateTime(this string str)
|
|
|
+ {
|
|
|
+ return DateTime.TryParse(str, out DateTime dt);
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 判断字符串是否为日期时间
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="str"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static bool IsDateTime(this string str, out DateTime dt)
|
|
|
+ {
|
|
|
+ return DateTime.TryParse(str, out dt);
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 将字符串转换为日期时间
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="str"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static DateTime ToDateTime(this string str)
|
|
|
+ {
|
|
|
+ return DateTime.TryParse(str, out DateTime dt) ? dt : DateTime.MinValue;
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 验证字符串是否为数字
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="str"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static bool IsDigital(this string str)
|
|
|
+ {
|
|
|
+ foreach (char c in str.ToCharArray())
|
|
|
+ {
|
|
|
+ if (!char.IsDigit(c))
|
|
|
+ {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 验证是否为固话号码
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="str"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static bool IsTelNumber(this string str)
|
|
|
+ {
|
|
|
+ //去掉-线后全为数字
|
|
|
+ return str.IsNullOrWhiteSpace() ? false : !str.StartsWith("-") && str.Replace("-", "").IsDigital();
|
|
|
+ }
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 去掉组织机构人员前缀
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static string RemoveUserPrefix(this string str)
|
|
|
+ {
|
|
|
+ return str.IsNullOrWhiteSpace() ? "" : str.StartsWith("u_") ? str.TrimStart('u', '_') : str;
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 去掉组织机构工作组前缀
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static string RemoveWorkGroupPrefix(this string str)
|
|
|
+ {
|
|
|
+ return str.IsNullOrWhiteSpace() ? "" : str.StartsWith("w_") ? str.TrimStart('w', '_') : str;
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 去掉组织机构人员兼职前缀
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static string RemoveUserRelationPrefix(this string str)
|
|
|
+ {
|
|
|
+ return str.IsNullOrWhiteSpace() ? "" : str.StartsWith("r_") ? str.TrimStart('r', '_') : str;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 移出所有空格
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="str"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static string TrimAll(this string str)
|
|
|
+ {
|
|
|
+ return Regex.Replace(str, @"\s", "");
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 转换为SQL的in字符串
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="str">逗号分开的字符串</param>
|
|
|
+ /// <param name="isSignle">是否加单引号</param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static string ToSqlIn(this string str, bool isSignle = true)
|
|
|
+ {
|
|
|
+ if (str.IsNullOrEmpty())
|
|
|
+ {
|
|
|
+ return string.Empty;
|
|
|
+ }
|
|
|
+ StringBuilder stringBuilder = new StringBuilder();
|
|
|
+ foreach (string s in str.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries))
|
|
|
+ {
|
|
|
+ if (isSignle)
|
|
|
+ {
|
|
|
+ stringBuilder.Append("'");
|
|
|
+ }
|
|
|
+ stringBuilder.Append(s);
|
|
|
+ if (isSignle)
|
|
|
+ {
|
|
|
+ stringBuilder.Append("'");
|
|
|
+ }
|
|
|
+ stringBuilder.Append(",");
|
|
|
+ }
|
|
|
+ return stringBuilder.ToString().TrimEnd(',');
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// URL编码
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="url"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static string UrlEncode(this string url)
|
|
|
+ {
|
|
|
+ return WebUtility.UrlEncode(url);
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// URL解码
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="url"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static string UrlDecode(this string url)
|
|
|
+ {
|
|
|
+ return WebUtility.UrlDecode(url);
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// HTML编码
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="str"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static string HtmlEncode(this string str)
|
|
|
+ {
|
|
|
+ return WebUtility.HtmlEncode(str);
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// HTML解码
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="str"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static string HtmlDecode(this string str)
|
|
|
+ {
|
|
|
+ return WebUtility.HtmlDecode(str);
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 将List拼接为字符串
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="ts"></param>
|
|
|
+ /// <param name="split">分隔符</param>
|
|
|
+ /// <param name="prefix">前缀</param>
|
|
|
+ /// <param name="suffix">后缀</param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static string JoinList<T>(this IEnumerable<T> ts, string split = ",", string prefix = "", string suffix = "")
|
|
|
+ {
|
|
|
+ if (null == ts || !ts.Any())
|
|
|
+ {
|
|
|
+ return "";
|
|
|
+ }
|
|
|
+ StringBuilder stringBuilder = new StringBuilder();
|
|
|
+ foreach (var t in ts)
|
|
|
+ {
|
|
|
+ stringBuilder.Append(prefix);
|
|
|
+ stringBuilder.Append(t);
|
|
|
+ stringBuilder.Append(suffix);
|
|
|
+ stringBuilder.Append(split);
|
|
|
+ }
|
|
|
+ return stringBuilder.ToString().TrimEnd(split.ToCharArray());
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 将List转换为SQL in语句
|
|
|
+ /// </summary>
|
|
|
+ /// <typeparam name="T"></typeparam>
|
|
|
+ /// <param name="ts"></param>
|
|
|
+ /// <param name="single">是包含单引号</param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static string JoinSqlIn<T>(this List<T> ts, bool single = true)
|
|
|
+ {
|
|
|
+ return ts.JoinList(",", single ? "'" : "", single ? "'" : "");
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 得到实符串实际长度
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="str"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static int Size(this string str)
|
|
|
+ {
|
|
|
+ byte[] strArray = Encoding.Default.GetBytes(str);
|
|
|
+ return strArray.Length;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 将日期时间转换为INT
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dateTime">日期时间</param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static int ToInt(this DateTime dateTime)
|
|
|
+ {
|
|
|
+ DateTime dt1 = new DateTime(1970, 1, 1, 8, 0, 0);
|
|
|
+ DateTime dt2 = Convert.ToDateTime(dateTime);
|
|
|
+ return Convert.ToInt32((dt2 - dt1).TotalSeconds);
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 将INT转换为日期时间
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="ticks"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static DateTime ToDateTime(this int ticks)
|
|
|
+ {
|
|
|
+ DateTime startTime = new DateTime(1970, 1, 1, 0, 0, 0);
|
|
|
+ startTime = startTime.AddSeconds(ticks).ToLocalTime();
|
|
|
+ return startTime;
|
|
|
+ }
|
|
|
public static string UTF8ToBase64(this string data)
|
|
|
{
|
|
|
if (data.IsEmpty())
|