Try this:
public enum ePersianNumbersliteral
{
Zero = '\u0660',
One = '\u0661',
Two = '\u0662',
Three = '\u0663',
Four = '\u0664',
Five = '\u0665',
Six = '\u0666',
Seven = '\u0667',
Eight = '\u0668',
Nine = '\u0669'
}
public static IEnumerable<T> SortEnumByValue<T>()
{
return from e in Enum.GetValues(typeof(T)).Cast<T>()
orderby e
select e;
}
public static IEnumerable<T> SortEnumByName<T>()
{
return from e in Enum.GetValues(typeof(T)).Cast<T>()
let nm = e.ToString()
orderby nm
select e;
}
Console.WriteLine("{0}",
string.Join(", ", SortEnumByValue<ePersianNumbersliteral>()));
Console.WriteLine("{0}",
string.Join(", ", SortEnumByName<ePersianNumbersliteral>()));
The output is:
Zero, One, Two, Three, Four, Five, Six, Seven, Eight, Nine
Eight, Five, Four, Nine, One, Seven, Six, Three, Two, Zero