using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Reflection;
namespace Znyc.Cloudcar.Admin.Commons.Extensions
{
///
/// 枚举类型的扩展
///
public static class EnumExtensions
{
///
///
///
///
public static string ToDescription(this Enum item)
{
string name = item.ToString();
DescriptionAttribute desc = item.GetType().GetField(name)?.GetCustomAttribute();
return desc?.Description ?? name;
}
///
///
///
///
public static long ToInt64(this Enum item)
{
return Convert.ToInt64(item);
}
///
/// 根据枚举的value获取枚举
///
/// 枚举的类型,示例:typeof(enum1)
/// 可能的枚举值
/// 枚举,示例:enum1.en1
public static Enum ParseEnum(Type enumType, string value)
{
return Enum.Parse(enumType, value) as Enum;
}
///
/// 根据 value 值获取Description
///
///
///
///
public static string GetDescription(this Type enumType, int value)
{
object Key = GetNameAndValue(enumType).FirstOrDefault(p => p.Value.Equals(value)).Key;
if (Key==null)
{
return null;
}
return Key.ToString();
}
///
/// 获取枚举名以及对应的Value
///
/// 枚举类型typeof(T)
/// 返回Dictionary ,Key为描述名, Value为枚举对应的值
public static Dictionary