Simile alla risposta di dbaseman (e commento di AKX) userei Cast
:
IEnumerable<MyClass> vats = here.All().Cast<MyClass>();
avrete bisogno di una direttiva using
per LINQ però:
using System.Linq;
nella parte superiore del file. Sembra che tu non l'abbia ottenuto se il metodo Select
non viene riconosciuto.
Si noti che questo presuppone che ciascun valore in realtà è un riferimento MyClass
.
EDIT: Se si vuole essere in grado di accedere ai valori dell'indice, mi consiglia di utilizzare ToList
:
List<MyClass> vats = here.All().Cast<MyClass>().ToList();
Mentre ToArray
avrebbe funzionato troppo, io personalmente preferisco elenca oltre array nella maggior parte dei casi, come sono piuttosto più flessibili.
MODIFICA: Sembra che i risultati siano effettivamente pieni di ExpandoObject
. Dovrai creare una nuova istanza di MyClass
da ciascun elemento, ad es.
List<MyClass> vats = here.All()
.Select(item => new MyClass(item.Name, item.Value))
.ToList();
o, eventualmente:
List<MyClass> vats = here.All()
.Select(item => new MyClass {
Name = item.Name,
Value = item.Value,
})
.ToList();
Questo è solo un esempio, che non mi aspetto di lavorare subito - non possiamo fare meglio di così come sappiamo nulla di come i tuoi risultati vengono effettivamente restituiti.
Sembra proprio che tu sia fuori di testa qui, temo.
fonte
2012-05-07 06:56:58
Come viene implementato All()? – Tigran
@Tigran Eccolo. Guarda il file Massive.cs. https://github.com/robconery/massive –
Qualsiasi motivo non è possibile mantenerlo "dinamico" nel codice? –