У меня есть следующий метод:
public static dynamic ToDynamicSelectFields(this object Object, List<string> Fields)
{
IDictionary<string, object> Expando = new ExpandoObject();
foreach (PropertyDescriptor Property in TypeDescriptor.GetProperties(Object.GetType()))
{
if (Fields.Contains(Property.Name)) Expando.Add(Property.Name, Property.GetValue(Object));
}
return (ExpandoObject) Expando;
}
И он используется так:
class A
{
int i;
char c;
string s;
}
dynamic d = A.ToDynamicSelectFields(new List<string> { "i", "c" });
, тогда d
будет динамическим только с i
и c
полей из A.
Но я хотел бы знать, можно ли переписать это так (и как это сделать):
dynamic d = A.ToDynamic..(a => a.i && a.c);
, потому что это устранит любые возможные ошибки в написании.