Search code examples
c#collections

Fastest Convert from Collection to List<T>


What I'd like to avoid:

ManagementClass m = new ManagementClass("Win32_LogicalDisk");

ManagementObjectCollection managementObjects = m.GetInstances();

List<ManagementObject> managementList = new List<ManagementObject>();

foreach(ManagementObject m in managementObjects){

    managementList.Add(m);

}

Isn't there a way to get that collection into a List that looks something like:

List<ManagementObject> managementList = new List<ManagementObjec>(collection_array);

Solution

  • What version of the framework? With 3.5 you could presumably use:

    List<ManagementObject> managementList = managementObjects.Cast<ManagementObject>().ToList();
    

    (edited to remove simpler version; I checked and ManagementObjectCollection only implements the non-generic IEnumerable form)