<p>What I'd like to avoid: </p>

<pre><code>ManagementClass m = new ManagementClass("Win32_LogicalDisk");

ManagementObjectCollection managementObjects = m.GetInstances();

List&lt;ManagementObject&gt; managementList = new List&lt;ManagementObject&gt;();

foreach(ManagementObject m in managementObjects){

    managementList.Add(m);

}
</code></pre>

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

<pre><code>List&lt;ManagementObject&gt; managementList = new List&lt;ManagementObjec&gt;(collection_array);
</code></pre>

You could try:
```
```
List<ManagementObject> managementList = new List<ManagementObject>(managementObjects.ToArray());
```
```
Not sure if .ToArray() is available for the collection.
If you do use the code you posted, make sure you initialize the List with the number of existing elements:
```
```
List<ManagementObject> managementList = new List<ManagementObject>(managementObjects.Count);  // or .Length
```
```