public static List <T?> GetMultiSelectValueListForPropertyDef <T>(this ObjVerEx objVerEx, int id, bool include_deleted = false) where T : struct { if (!typeof(T).IsEnum || !objVerEx.HasValue(id)) { return(new List <T?>()); } Lookups lookups = objVerEx.GetLookups(id); if (lookups.Count == 0) { return(null); } List <T?> Items = new List <T?>(); foreach (Lookup lookup in lookups) { if (lookup.Deleted && !include_deleted) { continue; } Items.Add((T)Enum.Parse(typeof(T), lookup.Item.ToString())); } return(Items); }