Пытается написать утилиту отображения данных, управляемую данными. Но мне нужно иметь возможность инициализировать объекты (строки в списке), ссылаясь на имена свойств (столбцов) в качестве переменных.C# объект инициализации - можно ссылаться на свойства по нелитеральному имени?
Так, например, вместо этого:
var p = new person {name = "Joe", age = 10}
я могу сделать что-то вроде ...
string prop1 = "name", prop2 = "age";
var p = new person {[prop1] = "Joe", [prop2] = 10}
... или, мы могли бы рассматривать свойства как упорядоченного набора каким-то образом, как
var p = new person {prop[1] = "Joe", prop[2] = 10}
... или неявным образом заказывать их, просто отбрасывая имена свойств, предполагая свойства wo uld подразумевается ...
var p = new person {"Joe", 10}
Если вы не смотреть на отражение? Инициализаторы объектов - это всего лишь синтаксический сахар для сеттеров. Они не влияют на то, как вы работаете с объектом вообще –
Может быть, словарь для 'string' и' object' был бы лучшей идеей для источника? – kiziu
@KarlRKaiser, что вы на самом деле пытаетесь сделать? Какую * актуальную проблему вы пытаетесь решить? Очевидно, что вы хотите каким-то образом установить свойства динамически, но почему? Разве это не удалось бы решить, например, с помощью AutoMapper или аналогичного инструмента? –