using System.Collections.Generic;
public static void Main()
var flaggedValues = GetFlaggedValues<MyEnum>(6);
foreach(var val in flaggedValues){
public static IList<T> GetFlaggedValues<T>(int intValue) where T : struct, IConvertible
throw new ArgumentException("T must be an enumerated type");
IList<T> listToReturn = new List<T>();
Enum enumToParse = Enum.Parse(typeof(T), intValue.ToString()) as Enum;
foreach (T item in Enum.GetValues(typeof(T)))
var itemAsEnumValue = (Enum)Enum.Parse(typeof(T), item.ToString());
if (enumToParse.HasFlag(itemAsEnumValue))