While working through ,I have always faced problems where only of i could convert an enum to Dictionary. Here's how you do it.
Code:
/// <summary>
/// Converts Enumeration type into a dictionary of names and values
/// </summary>
/// <param name="t">Enum type</param>
public
static
IDictionary<
string
,
int
> EnumToDictionary(
this
Type t)
{
if
(t ==
null
)
throw
new
NullReferenceException();
if
(!t.IsEnum)
throw
new
InvalidCastException(
"object is not an Enumeration"
);
string
[] names = Enum.GetNames(t);
Array values = Enum.GetValues(t);
return
(from i
in
Enumerable.Range(0, names.Length)
select
new
{ Key = names[i], Value = (
int
)values.GetValue(i) })
.ToDictionary(k => k.Key, k => k.Value);
}
Example:
var
dictionary =
typeof
(UriFormat).EnumToDictionary();
/* returns
key => value
SafeUnescaped => 3
Unescaped => 2
UriEscaped => 1
*/