1 /// <summary>
2 /// Gets all combined items from an enum value.
3 /// </summary>
4 /// <typeparam name="T"></typeparam>
5 /// <param name="value">The value.</param>
6 /// <returns></returns>
7 public static IEnumerable<T> GetAllSelectedItems<T>(this Enum value)
8 {
9 int valueAsInt = Convert.ToInt32(value, CultureInfo.InvariantCulture);
10
11 foreach (object item in Enum.GetValues(typeof(T)))
12 {
13 int itemAsInt = Convert.ToInt32(item, CultureInfo.InvariantCulture);
14
15 if (itemAsInt == (valueAsInt & itemAsInt))
16 {
17 yield return (T)item;
18 }
19 }
20 }
21