У меня есть список, который я повторяю.Лучший способ присвоить значение свойства динамически на основе имени свойства
Внутри списка <> классы аргументов, которые содержат два свойства «ИмениСвойства» и «Value»
Что мне нужно сделать, это перебирать коллекцию Аргументы и присвоить значение этого аргумента к собственности (с тем же именем, что и текущий аргумент) другого класса.
Пример:
Argument:
PropertyName: ClientID
Value: 1234
Members Class:
ClientID = {Argument Value here}
Я надеюсь, что это имеет смысл. У меня есть способ сделать это, жестко кодируя свойства моего класса и сопоставляя его с списком аргументов.
Что-то вроде:
foreach(var arg in List<Argument>)
{
Members.ClientID = arg.Find(x => compareName(x, "ClientID")).Value;
//where compareName just does a simple string.Compare
}
Но что лучший способ быть что-то вроде этого?
EDIT: Извините, об этом, ребята, и спасибо за ответы. Вот что я не упоминал и мог бы изменить ситуацию.
Каждый аргумент является другим свойством для того же класса. Я повторяю список, и каждый из них будет в том же классе членов, который я должен заполнить.
Я хотел упомянуть об этом, потому что, думая в foreach, мне, возможно, придется использовать переключатель, чтобы определить, что у меня есть «PropertyName» для этого аргумента. ClientID является одним из них, но я считаю, что в классе Members есть 14 общих свойств, которые нужно заполнить из коллекции.
Это что-то меняет?
Еще раз спасибо
могли бы вы опубликовать определение класса 'Argument'? – Odrade