У меня есть данные в словаре, аналогичном приведенному ниже:
«ключ 1»: «данные 1»,
«ключ 2»: «данные 2»,
"ключ 3": "данные 3",
и класс:
public class OuputClass
{
public string Field1 { get; set; }
public string Field2 { get; set; }
}
Используя лямбду, я хочу иметь возможность легко сопоставить имя ключа для каждого свойства и создать новый экземпляркласс передан.
var result = MapData<Class1>(x => x.Field1 = "key 1", x.Field2 = "key 3")
В функции MapData я хочу иметь возможность обрабатывать 2 свойства, переданные в функцию, и возвращать новый экземпляр OutputClass с установленными свойствами.(Field1 = "data 1" и Field2 = "data 3")
Я рассмотрел использование Func и IQueryable, но, похоже, не могу заставить его работать элегантно
Спасибо за любую помощь.
Ниже приведен пример функции ToObject:
public static T ToObject<T>(Func<T, IQueryable> mapper) where T : new()
{
//code to create the class (more complex then this)
var data = new T();
//if mapper needed then loop through properties specified and use string mapped to each property
foreach (var item in .....)
{
//code to get value needed to set property
var mappedstring = ...... //get string mapped to property
var newpropvalue = ...... //use mapped string to access dictionary value;
//set property of instance
data.... = newpropvalue;
}
return data;
}