C# Accès à la gestion des objets dans ManagementObjectCollection
J'essaye d'accéder à ManagementObjects dans ManagementObjectCollection sans l'aide de l'instruction foreach, peut-être que je manque quelque chose, mais je ne peux pas comprendre comment le faire, j'ai besoin de faire quelque chose comme ce qui suit:
ManagementObjectSearcher query = new ManagementObjectSearcher(
"select Name, CurrentClockSpeed from Win32_Processor");
ManagementObjectCollection queryCollection = query.Get();
ManagementObject mo = queryCollection[0];
OriginalL'auteur Jamesla | 2010-08-27
Vous devez vous connecter pour publier un commentaire.
ManagementObjectCollection implémentant IEnumerable ou ICollection, donc soit vous devez parcourir via IEnumerable (c'est à dire foreach) ou CopyTo un tableau par ICollection.
Cependant, car il prend en charge IEnumerable vous pouvez utiliser Linq :
OfType<ManagementObject>
est nécessaire car ManagementObjectCollection prend en charge IEnumerable mais pas IEnumerable de T.OfType
...ManagementObject mo = queryCollection.OfType<ManagementObject>().First();
Je ne vois pas
FirstOrDefault()
dansManagementObject
soit, seulementOfType<ManagementObject>().FirstOrDefault()
a fonctionné pour moiPour quelqu'un qui est aussi confus que j'ai été, il y a une faute de frappe dans cette réponse. Il faut lire:
ManagementObject mo = queryCollection.OfType<ManagementObject>().FirstOrDefault()
OriginalL'auteur Preet Sangha
Vous ne pouvez pas appeler directement linq de ManagementObjectCollection (ni un entier indexeur).
Vous avez à jeter aux IEnumerable première:
OriginalL'auteur TomB
ManagementObjectCollection ne met en œuvre des Indexeurs, mais oui, vous pouvez vous FirstOrDefault fonction d'extension si vous êtes à l'aide de linq mais les geeks qui sont à l'aide .net 3 ou plus tôt (comme moi encore travailler sur 1.1) peuvent utiliser le code suivant, c'est le standard de la façon d'obtenir le premier élément de toute collecte mis en œuvre interface IEnumerable.
suivantes sont deux différentes façons de récupérer des ManagementObject de toutes les index
OU
OriginalL'auteur Mubashar Ahmad
Vous êtes probablement manquant le casting:
...car je ne pense pas ManagementObjectCollection est générique (et en tant que tel n'a pas tapé de l'indexeur.)
OriginalL'auteur x0n