Wenn man in .NET eine WMI Query erzeugt
ManagementObjectSearcher oWMISearcher = new ManagementObjectSearcher(@"\meinserverrootcimv2", "select * from win32_process");
Dann bekommt mein eine ManagementObjectCollection zurück. Das Blöde: Die ist von Haus aus nicht „Linq-fähig“ (warum habe ich verdrängt).

Eine Statement wie folgendes (um die Top 10 Speicherfresser zu ermitteln)

List<ManagementObject> oWMIObjects = (from ManagementObject oMO in oWMISearcher.Get() orderby UInt64.Parse(oMO.Properties["WorkingSetSize"].Value.ToString()) descending select oMO).Take(10).ToList();

geht einfach nicht. Wenn man allerdings Linq sagt was es zu erwarten hat in dem man statt from oMO einfach from ManagementObject oMO nimmt pfeift das Statement einwandfrei 🙂

Source des Wissens, kommt nicht  von mir 😉