Con questo snippet inauguro una nuova categoria per “ritrovare” gli esempi di codice che mi piacciono e che non voglio perdere:
1: public static List<T> EnumToList<T>()
2: {
3: Type enumType = typeof (T);
4:
5: // Can't use type constraints on value types, so have to do check like this
6: if (enumType.BaseType != typeof(Enum))
7: throw new ArgumentException("T must be of type System.Enum");
8:
9: Array enumValArray = Enum.GetValues(enumType);
10:
11: List<T> enumValList = new List<T>(enumValArray.Length);
12:
13: foreach (int val in enumValArray) {
14: enumValList.Add((T)Enum.Parse(enumType, val.ToString()));
15: }
16:
17: return enumValList;
18: }
Un esempio di utilizzo:
1: List<DayOfWeek> weekdays =
2: EnumHelper.EnumToList<DayOfWeek>().FindAll(
3: delegate (DayOfWeek x)
4: {
5: return x != DayOfWeek.Sunday && x != DayOfWeek.Saturday;
6: });
Lo snippet l’ho preso da qui.