2013-07-16 9 views
8

questo è l'esempio:Posso compilare una lista della mia classe direttamente in LINQ?

public class FotoLiveLove 
{ 
    public string Tipologia { get; set; } 
    public string URL { get; set; } 
} 

IList<FotoLiveLove> fotoLiveLove = xDoc["statuses"].Select(x => new 
{ 
    Tipologia = "twitter", 
    URL = (string)x["URLJSON"] 
}).ToList();  

ma dice acnnot convertire il tipo anonimo # 1 a FotoLiveLove.

risposta

15

È necessario aggiungere il nome della classe, dopo la parola chiave new:

IList<FotoLiveLove> fotoLiveLove = xDoc["statuses"].Select(x => new FotoLiveLove() 
{ 
    Tipologia = "twitter", 
    URL = (string)x["URLJSON"] 
}).ToList(); 
+5

+1. Nota a margine, se si utilizza la sintassi di inizializzazione dell'oggetto, non è necessario '()'. –

2

è necessario specificare il tipo sul .Select. Provare qualcosa di simile:

IList<FotoLiveLove> fotoLiveLove = xDoc["statuses"].Select(x => new FotoLiveLove() 
{ 
    Tipologia = "twitter", 
    URL = (string)x["URLJSON"] 
}).ToList(); 
1

Io preferisco usare il modulo di richiesta in questi casi (ma questo è solo una preferenza):

IList<FotoLiveLove> fotoLiveLove = (from f in x.Doc["statuses"] 
           select new FotoLiveLove(){ 
            Tipologia = "twitter", 
            URL = (string)x["URLJSON"] 
           }).ToList(); 
Problemi correlati