У меня есть массив объектов значений ключа.Объект карты [] с свойствами свойства ключа к свойствам объекта без использования огромного неприятного переключателя
public class KeyValueStore
{
public string Key {get;set;}
public string Value {get;set;}
}
Этот массив содержит значение объекта я пытаюсь заполнить так:
public class Customer
{
public string Name {get;set;}
public string Country {get;set}
}
Так я хочу, чтобы отобразить эти ключи от KeyValueStore свойств клиентов
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;
}
Is есть лучший способ сделать это?
С быстрым взглядом будет сложно избежать любого типа кода переключения/поиска, поскольку ваши Ключи не являются событием, выстраивающимся под действие свойств. Я имею в виду '' Cntry '! = Country' –
Предполагая, что ключи на самом деле являются именами свойств, без опечаток, посмотрите здесь: http://stackoverflow.com/questions/7718792/can-i-set-a-property -value-with-reflection – kiziu
По какой-либо причине вы повторно изобретаете «Словарь» здесь с классом «KeyValueStore»? –