using System.Collections.Generic;
public static void Main()
var q = Parse<TestType>((Test.ACT | Test.SAT_2016).ToString());
Console.WriteLine(string.Format("Type: {0}\t Value: {1}", q.GetType(), q));
public static T Parse<T>(string value, bool ignoreCase = false)
where T : FlagsAttribute , IComparable, IFormattable, IConvertible
if (value.ToString().Contains(",")){
var parts = value.ToString().Split(',');
var results = new List<T> ();
foreach (var part in parts){
final |= (T)Enum.Parse(typeof(T), part, ignoreCase) ;
Console.WriteLine("Got exception");
return (T) Enum.Parse(typeof(T), value.ToString(), ignoreCase);