I need to retrieve all enums that were loaded from a given set of Assemblies.
                +2 
                A: 
                
                
              
            Assuming you have the list of Assembly objects you want to check:
IEnumerable<Assembly> assemblies; // assign the assemblies you want to check here
foreach (Assembly a in assemblies) {
    foreach (Type t in assembly.GetTypes()) {
        if (t.IsEnum) {
            // found an enum! Do whatever...
        }
    }
}
                  thecoop
                   2009-12-16 11:28:53
                
              
                +2 
                A: 
                
                
              
            You should be able to use Assembly.GetTypes() to get all the types for the assembly. For each type, you can use Type.IsEnum property to see if it's an enum.
                  dcp
                   2009-12-16 11:29:02
                
              
                +5 
                A: 
                
                
              
            List<Type> list = new List<Type>();
foreach (Assembly ass in AppDomain.CurrentDomain.GetAssemblies())
{
    foreach (Type t in ass.GetExportedTypes())
    {
     if (t.IsEnum)
     {
      list.Add(t);
     }
    }
}
That should do, for all assemblies loaded by the current Appdomain, to get just from defined assemblies, just adjust ;-)
                  BeowulfOF
                   2009-12-16 11:32:17
                
              
                +2 
                A: 
                
                
              
            You can also use LINQ to return a list of all enum types from a list of assemblies.
IEnumerable<Assembly> assemblies;
// give assemblies some value
var enums = from assembly in assemblies let types = assembly.GetTypes() from type in types where type.IsEnum select type;
enums will be of type IEnumerable.
                  Matt Olenik
                   2009-12-16 11:43:38