219 lines
4.9 KiB
C#
219 lines
4.9 KiB
C#
using MAX.Core.Helpers;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
|
|
namespace MAX.Core.Extensions;
|
|
|
|
/// <summary>
|
|
/// 系统扩展 - 类型转换
|
|
/// </summary>
|
|
public static partial class Extensions
|
|
{
|
|
/// <summary>
|
|
/// IsNullOrEmpty
|
|
/// </summary>
|
|
/// <param name="input"></param>
|
|
/// <returns></returns>
|
|
public static bool IsNullOrEmpty(this string input)
|
|
{
|
|
return string.IsNullOrEmpty(input);
|
|
}
|
|
/// <summary>
|
|
/// 安全转换为字符串,去除两端空格,当值为null时返回""
|
|
/// </summary>
|
|
/// <param name="input">输入值</param>
|
|
public static string SafeString(this object input)
|
|
{
|
|
return input?.ToString().Trim() ?? string.Empty;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 转换为bool
|
|
/// </summary>
|
|
/// <param name="obj">数据</param>
|
|
public static bool ToBool(this string obj, bool defvalue = false)
|
|
{
|
|
return Helpers.Convert.ToBool(obj, defvalue);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 转换为可空bool
|
|
/// </summary>
|
|
/// <param name="obj">数据</param>
|
|
public static bool? ToBoolOrNull(this string obj)
|
|
{
|
|
return Helpers.Convert.ToBoolOrNull(obj);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 转换为int
|
|
/// </summary>
|
|
/// <param name="obj">数据</param>
|
|
public static int ToInt(this string obj, int defvalue = 0)
|
|
{
|
|
return Helpers.Convert.ToInt(obj, defvalue);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 转换为可空int
|
|
/// </summary>
|
|
/// <param name="obj">数据</param>
|
|
public static int? ToIntOrNull(this string obj)
|
|
{
|
|
return Helpers.Convert.ToIntOrNull(obj);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 转换为long
|
|
/// </summary>
|
|
/// <param name="obj">数据</param>
|
|
public static long ToLong(this string obj, long defvalue = 0)
|
|
{
|
|
return Helpers.Convert.ToLong(obj, defvalue);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 转换为可空long
|
|
/// </summary>
|
|
/// <param name="obj">数据</param>
|
|
public static long? ToLongOrNull(this string obj)
|
|
{
|
|
return Helpers.Convert.ToLongOrNull(obj);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 转换为double
|
|
/// </summary>
|
|
/// <param name="obj">数据</param>
|
|
public static double ToDouble(this string obj, double defvalue = 0)
|
|
{
|
|
return Helpers.Convert.ToDouble(obj, defvalue: defvalue);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 转换为可空double
|
|
/// </summary>
|
|
/// <param name="obj">数据</param>
|
|
public static double? ToDoubleOrNull(this string obj)
|
|
{
|
|
return Helpers.Convert.ToDoubleOrNull(obj);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 转换为decimal
|
|
/// </summary>
|
|
/// <param name="obj">数据</param>
|
|
public static decimal ToDecimal(this string obj, decimal defvalue = 0)
|
|
{
|
|
return Helpers.Convert.ToDecimal(obj, defvalue: defvalue);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 转换为可空decimal
|
|
/// </summary>
|
|
/// <param name="obj">数据</param>
|
|
public static decimal? ToDecimalOrNull(this string obj)
|
|
{
|
|
return Helpers.Convert.ToDecimalOrNull(obj);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 转换为日期
|
|
/// </summary>
|
|
/// <param name="obj">数据</param>
|
|
public static DateTime ToDate(this string obj)
|
|
{
|
|
return Helpers.Convert.ToDate(obj);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 转换为可空日期
|
|
/// </summary>
|
|
/// <param name="obj">数据</param>
|
|
public static DateTime? ToDateOrNull(this string obj)
|
|
{
|
|
return Helpers.Convert.ToDateOrNull(obj);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 转换为Guid
|
|
/// </summary>
|
|
/// <param name="obj">数据</param>
|
|
public static Guid ToGuid(this string obj)
|
|
{
|
|
return Helpers.Convert.ToGuid(obj);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 转换为可空Guid
|
|
/// </summary>
|
|
/// <param name="obj">数据</param>
|
|
public static Guid? ToGuidOrNull(this string obj)
|
|
{
|
|
return Helpers.Convert.ToGuidOrNull(obj);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 转换为Guid集合
|
|
/// </summary>
|
|
/// <param name="obj">数据,范例: "83B0233C-A24F-49FD-8083-1337209EBC9A,EAB523C6-2FE7-47BE-89D5-C6D440C3033A"</param>
|
|
public static List<Guid> ToGuidList(this string obj)
|
|
{
|
|
return Helpers.Convert.ToGuidList(obj);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 转换为Guid集合
|
|
/// </summary>
|
|
/// <param name="obj">字符串集合</param>
|
|
public static List<Guid> ToGuidList(this IList<string> obj)
|
|
{
|
|
if (obj == null)
|
|
{
|
|
return [];
|
|
}
|
|
|
|
return obj.Select(t => t.ToGuid()).ToList();
|
|
}
|
|
/// <summary>
|
|
/// 转换枚举描述
|
|
/// </summary>
|
|
/// <param name="obj"></param>
|
|
/// <returns></returns>
|
|
public static string ToDescription(this Enum obj)
|
|
{
|
|
return EnumHelper.GetDescription(obj.GetType(), obj);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 枚举值 → 单个 EnumItem
|
|
/// </summary>
|
|
/// <typeparam name="TEnum"></typeparam>
|
|
/// <param name="value"></param>
|
|
/// <returns></returns>
|
|
public static EnumItem<TEnum> ToItem<TEnum>(this TEnum value) where TEnum : struct, Enum
|
|
{
|
|
return new EnumItem<TEnum>(value);
|
|
}
|
|
/// <summary>
|
|
/// 是否单一标记
|
|
/// </summary>
|
|
/// <param name="obj"></param>
|
|
/// <returns></returns>
|
|
public static bool IsSingleFlag(Enum obj)
|
|
{
|
|
return EnumHelper.IsSingleFlag(obj);
|
|
}
|
|
/// <summary>
|
|
/// 获取第一个标记
|
|
/// </summary>
|
|
/// <typeparam name="T"></typeparam>
|
|
/// <param name="obj"></param>
|
|
/// <returns></returns>
|
|
public static Enum GetFirstFlag(this Enum obj)
|
|
{
|
|
return EnumHelper.GetFirstFlag(obj);
|
|
}
|
|
}
|