I’m trying to access ManagementObjects in ManagementObjectCollection without using a foreach statement, maybe I’m missing something but I can’t figure out how to do it, I need to do something like the following:
ManagementObjectSearcher query = new ManagementObjectSearcher(
"select Name, CurrentClockSpeed from Win32_Processor");
ManagementObjectCollection queryCollection = query.Get();
ManagementObject mo = queryCollection[0];
ManagementObjectCollection implements IEnumerable or ICollection, so either you must iterate it via IEnumerable (ie foreach) or CopyTo an array via ICollection.
However since it supports IEnumerable you can use Linq :
OfType<ManagementObject>is required because ManagementObjectCollection supports IEnumerable but not IEnumerable of T.