Ich habe ein Objekt-Array von Key-Werten.Map Object [] mit Key Value-Eigenschaften zu den Eigenschaften eines Objekts, ohne einen riesigen, fiesen Schalter zu verwenden
public class KeyValueStore
{
public string Key {get;set;}
public string Value {get;set;}
}
Dieses Array speichert die Werte eines Objekts i so zu füllen versuche:
public class Customer
{
public string Name {get;set;}
public string Country {get;set}
}
Deshalb möchte ich diese Schlüssel von KeyValueStore zu Kunden Eigenschaften abzubilden
public Customer TransformToCustomer(KeyValueStore[] keyValueStore)
{
var customer = new Customer();
foreach (var keyValue in keyValueStore)
{
switch (keyValue.Key)
{
case "Name":
customer.Name = keyValue.Value;
break;
case "Cntry":
customer.Country = keyValue.Value;
break;
}
}
return customer;
}
Ist gibt es einen besseren Weg, dies zu tun?
Aus einem schnellen Blick wird es schwierig sein, jede Art von Code zu vermeiden, da Ihre Keys kein Ereignis sind, das sich an die Eigenschaften anpasst. Was ich meine, ist "" Cntry "! = Land" –
Angenommen, dass Schlüssel sind eigentlich Namen, ohne Tippfehler, werfen Sie einen Blick hier: http://StackOverflow.com/Questions/7718792/Can-i-Set-A-Property -value-with-reflection – kiziu
Gibt es einen Grund, warum Sie das 'Dictionary' hier mit Ihrer' KeyValueStore' Klasse neu erfinden? –