C#Enum変換

2648 ワード

public class Enum2
{

public Dictionary<string, int> GetEnumItems<T>()
{
Dictionary<string, int> dicResult = new Dictionary<string, int>();
T obj = default(T);
Type type = obj.GetType();
foreach (string s in type.GetEnumNames())
{
dicResult.Add(s, Convert.ToInt16((T)Enum.Parse(typeof(T), s, true)));
}
return dicResult;
}

public T GetEnumByEnumName<T>(string enumName)
{
T result = default(T);
if (Enum.IsDefined(typeof(T), enumName))
{
result = (T)Enum.Parse(typeof(T), enumName, true);
}
else
{

}
return result;
}

public T GetEnumByEnumIndex<T>(int ienum)
{
T result = default(T);
if (Enum.IsDefined(typeof(T), ienum))
{
result = (T)Enum.Parse(typeof(T), ienum.ToString(), true);
}
else
{

}
return result;
}