2016-03-22 12 views
0

Ich versuche eine dynamische Liste in eine Liste von Klassenmodellen (Produkte) zu konvertieren. Dies ist, wie meine Methode wie folgt aussieht:Wie konvertiert man eine dynamische Liste in die Liste <Class>?

public List<Products> ConvertToProducts(List<dynamic> data) 
{ 
    var sendModel = new List<Products>(); 

    //Mapping List<dynamic> to List<Products> 
    sendModel = data.Select(x => 
    new Products 
    { 
     Name = data.GetType().GetProperty("Name").ToString(), 
     Price = data.GetType().GetProperty("Price").GetValue(data, null).ToString() 
    }).ToList(); 
} 

ich diese beide Weisen versucht haben, die Eigenschaftswerte zu erhalten, aber es gibt mir null Fehler sagen, diese Eigenschaften nicht vorhanden ist oder sie sind null.

Name = data.GetType(). GetProperty ("Name"). ToString(),

Preis = data.GetType(). GetProperty ("Preis"). GetValue (Daten, null) .ToString()

Dies ist, wie mein Modell-Klasse wie folgt aussieht:

public class Products 
{ 
    public string ID { get; set; } 
    public string Name { get; set; } 
    public string Price { get; set; } 
} 

Kann jemand bitte lassen Sie mich wissen, was ich bin fehlt? Danke im Voraus.

+1

Nebenbei, es hat keinen Sinn, eine neue 'List ' zu erstellen, einen Verweis auf' sendModel' zuzuweisen und dann sendModel einen anderen Wert zuzuweisen, ohne den vorherigen zu verwenden. –

Antwort

2

Sie versuchen derzeit Objekte data zu erhalten, die Ihre Liste ist - und Sie ignorieren x, die die Artikel in der Liste ist. Ich vermute, Sie wollen:

var sendModel = data 
    .Select(x => new Products { Name = x.Name, Price = x.Price }) 
    .ToList(); 

Sie kann wollen ToString() über die Ergebnisse der Eigenschaften nennen, aber es ist nicht klar, was in den Originaldaten ist.

Verwandte Themen