2016-03-02 2 views
1

В C# Я хотел преобразовать список в список и добавить новые свойства объекта динамически.C# конвертировать список <object> в список <dynamic> и добавить свойства

List<Customer> customerList; // has list of customer object 
List<Properties> properties; // has { string:propertyname and string:value} 

Я хотел бы добавить некоторые свойства динамически всего объект клиента перебирая списка, подобный JavaScript в C# без потери данных в существующем списке объектов

Я хотел бы получить свойства из другого источника.

Как достичь такого поведения в C#.

for(Customer c in customerList) 
{ 
    for(Property prop in properties) 
    { 
     c[prop.propertyName]=prop.value; // similar to javascript 
    } 
} 

Я потребовала бы этот список, чтобы получить доступ из моего пользовательского интерфейса, сделав вызов API и возвращает данные в формате JSON

+0

Я могу добавить общедоступный динамический пользовательский = новый ExpandoObject(); Заказчику и итерации клиентов и var cust = customers [i]; var exp = item.custom as IDictionary ; exp [cust.propertyName] = cust.value ?? string.Empty; Но есть ли способ, когда я мог бы добавлять свойства к Клиенту, а не к собственному клиенту. – Shashi

ответ

2

я бы не стал. Я бы сохранил свой список в виде списка Customer, и я бы расширил класс Customer для поддержки доступа к дополнительным объектам Dictionary, доступным через explicit indexer.

private Dictionary<string,Something>; 
public Something this[string i] 
{ 
    get { return InnerDictionary[i]; } 
    set { InnerDictionary[i] = value; } 
} 
+0

Я бы потребовал, чтобы этот список был доступен из моего пользовательского интерфейса, сделав вызов API и вернув данные в формате JSON, поэтому я хотел, чтобы он был в формате Object – Shashi

Смежные вопросы