Files
KJD/MAX.Core/Extensions/Convert.cs
T
2026-09-11 19:11:12 +08:00

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);
}
}