我已经被称为针对不同性质(返回IEnumerable<string>
)像MyList
每个孩子这种方法,需要在Children
传递属性名称聚集
public IEnumerable<string> GetMyListAggregatedValues()
{
var aggregatedValues = new List<string>();
return Children.Aggregate(aggregatedValues , (current, child) => current.Union(child.MyList).ToList());
}
一种方法来解决,这是调用它的每那些对儿童的财产。
所以我的问题是,有没有办法以某种方式避免这个重复的代码和动态传递属性名称(不使用反射,这将是一种矫枉过正,我认为)。
所以,静态地,这些电话将作出类似
GetMyListAggregatedValues();
GetAnotherListAggregatedValues();
而且我后(如果可能)
GetAggregatedValues(_SOMETHING_.MyList);
您是否使用动态linq进行了研究?它允许你传递字符串作为linq表达式而不是lambda表达式。 –