|
|
@@ -1,5 +1,4 @@
|
|
|
using Newtonsoft.Json;
|
|
|
-using Newtonsoft.Json.Linq;
|
|
|
using System.Diagnostics;
|
|
|
using System.Net;
|
|
|
using System.Security.Cryptography;
|
|
|
@@ -71,45 +70,7 @@ namespace YSAI.Unility
|
|
|
return OR;
|
|
|
}
|
|
|
|
|
|
- /// <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转换为整数
|
|
|
@@ -290,25 +251,7 @@ namespace YSAI.Unility
|
|
|
return date.ToString("yyyy-MM-dd HH:mm:ss.fff").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>
|
|
|
/// 比较字符串区分大小写
|
|
|
@@ -352,55 +295,7 @@ namespace YSAI.Unility
|
|
|
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>
|
|
|
/// 将字符串转换为整数
|
|
|
@@ -413,25 +308,7 @@ namespace YSAI.Unility
|
|
|
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>
|
|
|
/// 将字符串转换为长整型
|
|
|
@@ -444,25 +321,7 @@ namespace YSAI.Unility
|
|
|
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>
|
|
|
/// 将字符串转换为数字
|
|
|
@@ -475,25 +334,7 @@ namespace YSAI.Unility
|
|
|
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>
|
|
|
/// 将字符串转换为日期时间
|
|
|
@@ -505,33 +346,7 @@ namespace YSAI.Unility
|
|
|
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>
|
|
|
/// 移出所有空格
|
|
|
@@ -1249,75 +1064,14 @@ namespace YSAI.Unility
|
|
|
|
|
|
|
|
|
|
|
|
- /// <summary>
|
|
|
- /// 是不是为空
|
|
|
- /// </summary>
|
|
|
- /// <param name="value">字符串</param>
|
|
|
- /// <returns></returns>
|
|
|
- public static bool IsEmpty(this string value)
|
|
|
- {
|
|
|
- return string.IsNullOrWhiteSpace(value);
|
|
|
- }
|
|
|
-
|
|
|
- public static bool IsNull(this string value)
|
|
|
- {
|
|
|
- return value == null;
|
|
|
- }
|
|
|
-
|
|
|
- public static bool IsEmpty(this Guid? value)
|
|
|
- {
|
|
|
- if (!value.HasValue)
|
|
|
- {
|
|
|
- return true;
|
|
|
- }
|
|
|
- return value.Value.IsEmpty();
|
|
|
- }
|
|
|
-
|
|
|
- public static bool IsEmpty(this Guid value)
|
|
|
- {
|
|
|
- if (value == Guid.Empty)
|
|
|
- {
|
|
|
- return true;
|
|
|
- }
|
|
|
- return false;
|
|
|
- }
|
|
|
|
|
|
- public static bool IsEmpty(this DateTime? value)
|
|
|
- {
|
|
|
- if (!value.HasValue)
|
|
|
- {
|
|
|
- return true;
|
|
|
- }
|
|
|
- return value.Value.IsEmpty();
|
|
|
- }
|
|
|
-
|
|
|
- public static bool IsEmpty(this DateTime value)
|
|
|
- {
|
|
|
- if (value == DateTime.MinValue)
|
|
|
- {
|
|
|
- return true;
|
|
|
- }
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- public static bool IsEmpty(this object value)
|
|
|
- {
|
|
|
- if (value != null && !string.IsNullOrEmpty(value.ToString()))
|
|
|
- {
|
|
|
- return false;
|
|
|
- }
|
|
|
- return true;
|
|
|
- }
|
|
|
|
|
|
public static T SafeValue<T>(this T? value) where T : struct
|
|
|
{
|
|
|
return value.GetValueOrDefault();
|
|
|
}
|
|
|
|
|
|
- public static bool IsNum(this string value)
|
|
|
- {
|
|
|
- return Regex.IsMatch(value, "^\\d+(\\.\\d*)?$");
|
|
|
- }
|
|
|
+
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读取Json文件内容为集合
|
|
|
@@ -1492,30 +1246,7 @@ namespace YSAI.Unility
|
|
|
return value;
|
|
|
}
|
|
|
|
|
|
- /// <summary>
|
|
|
- /// 判断是不是有效JSON
|
|
|
- /// </summary>
|
|
|
- /// <param name="json">Json 字符串</param>
|
|
|
- /// <returns></returns>
|
|
|
- public static bool IsJson(this string json)
|
|
|
- {
|
|
|
- try
|
|
|
- {
|
|
|
- JToken jToken = JToken.Parse(json);
|
|
|
- if (jToken.Type != JTokenType.Object)
|
|
|
- {
|
|
|
- return false;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- return true;
|
|
|
- }
|
|
|
- }
|
|
|
- catch
|
|
|
- {
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
+
|
|
|
|
|
|
/// <summary>
|
|
|
/// JSON格式化
|
|
|
@@ -1546,5 +1277,45 @@ namespace YSAI.Unility
|
|
|
return str;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 字节数组转16进制字符
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="bytes">字节数组</param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static string ToHexString(this byte[] bytes)
|
|
|
+ {
|
|
|
+ return string.Join(" ", bytes.Select(t => t.ToString("X2")));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 16进制字符串转字节数组
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="str">字符串</param>
|
|
|
+ /// <param name="strict">严格模式(严格按两个字母间隔一个空格)</param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static byte[] ToHex(this string str, bool strict = true)
|
|
|
+ {
|
|
|
+ if (string.IsNullOrWhiteSpace(str) || str.Trim().Replace(" ", "").Length % 2 != 0)
|
|
|
+ throw new ArgumentException("请传入有效的参数");
|
|
|
+
|
|
|
+ if (strict)
|
|
|
+ {
|
|
|
+ return str.Split(' ').Where(t => t?.Length == 2).Select(t => Convert.ToByte(t, 16)).ToArray();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ str = str.Trim().Replace(" ", "");
|
|
|
+ var list = new List<byte>();
|
|
|
+ for (int i = 0; i < str.Length; i++)
|
|
|
+ {
|
|
|
+ var string16 = str[i].ToString() + str[++i].ToString();
|
|
|
+ list.Add(Convert.ToByte(string16, 16));
|
|
|
+ }
|
|
|
+ return list.ToArray();
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|