Similar a la respuesta de dbaseman (y el comentario de AKX) que haría uso de Cast
:
IEnumerable<MyClass> vats = here.All().Cast<MyClass>();
que necesitará una directiva using
de LINQ embargo:
using System.Linq;
en la parte superior de su archivo. Parece que no lo tiene si no se reconoce el método Select
.
Tenga en cuenta que esto supone que cada valor realmente es una referencia MyClass
.
EDIT: Si usted quiere ser capaz de acceder a los valores de índice, me gustaría recomendar el uso ToList
:
List<MyClass> vats = here.All().Cast<MyClass>().ToList();
Mientras ToArray
funcionaría también, yo personalmente a favor enumera más de matrices en la mayoría de los casos, como se son bastante más flexibles.
EDITAR: Parece que sus resultados están realmente llenos de ExpandoObject
. Deberá crear una nueva instancia de MyClass
de cada elemento, p.
List<MyClass> vats = here.All()
.Select(item => new MyClass(item.Name, item.Value))
.ToList();
o posiblemente:
List<MyClass> vats = here.All()
.Select(item => new MyClass {
Name = item.Name,
Value = item.Value,
})
.ToList();
Eso es simplemente un ejemplo, que no esperaría a trabajar de inmediato - que no se puede hacer nada mejor que eso, ya no sabemos nada acerca de cómo sus resultados en realidad están siendo devueltos.
Suena como si estuvieras en tu cabeza aquí, me temo.
¿Cómo se implementa All()? – Tigran
@Tigran Aquí está. Mira el archivo Massive.cs. https://github.com/robconery/massive –
¿Alguna razón por la que no puedes mantenerla "dinámica" en tu código? –