ManagementObjectCollection no implementa controladores paso a paso, pero sí se puede que la función de extensión FirstOrDefault si está utilizando LINQ, pero los frikis que están utilizando .NET 3 o anterior (como yo todavía trabajando en 1.1) puede usar el siguiente código, es la forma estándar de obtener el primer elemento de cualquier colección implementada en la interfaz IEnumerable.
//TODO: Do the Null and Count Check before following lines
IEnumerator enumerator = collection.GetEnumerator();
enumerator.MoveNext();
ManagementObject mo = (ManagementObject)enumerator.Current;
siguientes son dos maneras diferentes para recuperar ManagementObject de cualquier índice
private ManagementObject GetItem(ManagementObjectCollection collection, int index)
{
//TODO: do null handling
IEnumerator enumerator = collection.GetEnumerator();
int currentIndex = 0;
while (enumerator.MoveNext())
{
if (currentIndex == index)
{
return enumerator.Current as ManagementObject;
}
currentIndex++;
}
throw new ArgumentOutOfRangeException("Index out of range");
}
O
private ManagementObject GetItem(ManagementObjectCollection collection, int index)
{
//TODO: do null handling
int currentIndex = 0;
foreach (ManagementObject mo in collection)
{
if (currentIndex == index)
{
return mo;
}
currentIndex++;
}
throw new ArgumentOutOfRangeException("Index out of range");
}
que necesitaba para agregar '' OfType' ... mo ManagementObject = queryCollection.OfType < ManagementObject>(). First(); ' –
No veo' FirstOrDefault() 'en' ManagementObject', solo 'OfType(). FirstOrDefault()' funcionó para mí –
Jack
Para cualquier persona que está tan confundido como yo, hay un error tipográfico en esta respuesta. Debería leer: 'ManagementObject mo = queryCollection.OfType(). FirstOrDefault()' –
SGS